aboutsummaryrefslogtreecommitdiffstats
path: root/src/types/udp.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/types/udp.rs')
-rw-r--r--src/types/udp.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/types/udp.rs b/src/types/udp.rs
new file mode 100644
index 0000000..f45cf85
--- /dev/null
+++ b/src/types/udp.rs
@@ -0,0 +1,26 @@
+use std::error;
+
+/* Often times an a file descriptor in an atomic might suffice.
+ */
+pub trait Bind<Endpoint>: Send + Sync {
+ type Error : error::Error;
+
+ fn new() -> Self;
+
+ /// Updates the port of the Bind
+ ///
+ /// # Arguments
+ ///
+ /// - port, The new port to bind to. 0 means any available port.
+ ///
+ /// # Returns
+ ///
+ /// The unit type or an error, if binding fails
+ fn set_port(&self, port: u16) -> Result<(), Self::Error>;
+
+ /// Returns the current port of the bind
+ fn get_port(&self) -> u16;
+
+ fn recv(&self, dst: &mut [u8]) -> Endpoint;
+ fn send(&self, src: &[u8], dst: &Endpoint);
+}