1 //! Implementations of the [`Connection`] trait for various built-in types 2 // TODO: impl Connection for all `Read + Write` (blocked on specialization) 3 4 #[cfg(feature = "alloc")] 5 mod boxed; 6 7 #[cfg(feature = "std")] 8 mod tcpstream; 9 10 #[cfg(all(feature = "std", unix))] 11 mod unixstream; 12 13 use crate::conn::Connection; 14 use crate::conn::ConnectionExt; 15 16 impl<E> Connection for &mut dyn Connection<Error = E> { 17 type Error = E; 18 write(&mut self, byte: u8) -> Result<(), Self::Error>19 fn write(&mut self, byte: u8) -> Result<(), Self::Error> { 20 (**self).write(byte) 21 } 22 write_all(&mut self, buf: &[u8]) -> Result<(), Self::Error>23 fn write_all(&mut self, buf: &[u8]) -> Result<(), Self::Error> { 24 (**self).write_all(buf) 25 } 26 flush(&mut self) -> Result<(), Self::Error>27 fn flush(&mut self) -> Result<(), Self::Error> { 28 (**self).flush() 29 } 30 on_session_start(&mut self) -> Result<(), Self::Error>31 fn on_session_start(&mut self) -> Result<(), Self::Error> { 32 (**self).on_session_start() 33 } 34 } 35 36 impl<E> Connection for &mut dyn ConnectionExt<Error = E> { 37 type Error = E; 38 write(&mut self, byte: u8) -> Result<(), Self::Error>39 fn write(&mut self, byte: u8) -> Result<(), Self::Error> { 40 (**self).write(byte) 41 } 42 write_all(&mut self, buf: &[u8]) -> Result<(), Self::Error>43 fn write_all(&mut self, buf: &[u8]) -> Result<(), Self::Error> { 44 (**self).write_all(buf) 45 } 46 flush(&mut self) -> Result<(), Self::Error>47 fn flush(&mut self) -> Result<(), Self::Error> { 48 (**self).flush() 49 } 50 on_session_start(&mut self) -> Result<(), Self::Error>51 fn on_session_start(&mut self) -> Result<(), Self::Error> { 52 (**self).on_session_start() 53 } 54 } 55 56 impl<E> ConnectionExt for &mut dyn ConnectionExt<Error = E> { read(&mut self) -> Result<u8, Self::Error>57 fn read(&mut self) -> Result<u8, Self::Error> { 58 (**self).read() 59 } 60 peek(&mut self) -> Result<Option<u8>, Self::Error>61 fn peek(&mut self) -> Result<Option<u8>, Self::Error> { 62 (**self).peek() 63 } 64 } 65