]> code.octet-stream.net Git - m17rt/blobdiff - m17app/src/tnc.rs
Convolutional encoding
[m17rt] / m17app / src / tnc.rs
index 921585b7a92ef1ce935bdba3405caf78564739f1..e7799b4843cb713fd819e1390110dc8a9030b81c 100644 (file)
@@ -6,8 +6,20 @@ use std::io::{Read, Write};
 /// via a working implementation of try_clone(). We do not require `Clone` directly
 /// as this could not be fulfilled by `TcpStream`.
 pub trait Tnc: Read + Write + Sized + Send + 'static {
+    /// Return a copy of this TNC.
+    ///
+    /// `M17App` will use this to create a second instance of the supplied TNC then use
+    /// one of them for reading and one of them for writing, concurrently across two threads.
+    ///
+    /// Implementations do not need to worry about trying to make two simultaneous reads or
+    /// two simultaneous writes do something sensible. `M17App` will not do this and it would
+    /// probably produce garbled KISS messages anyway.
     fn try_clone(&mut self) -> Result<Self, TncError>;
+
+    /// Start I/O.
     fn start(&mut self) -> Result<(), TncError>;
+
+    /// Shut down I/O - it is assumed we cannot restart.
     fn close(&mut self) -> Result<(), TncError>;
 }