1 use crate::conn::Connection;
2 use crate::conn::ConnectionExt;
3 use alloc::boxed::Box;
4 
5 impl<E> Connection for Box<dyn Connection<Error = E>> {
6     type Error = E;
7 
write(&mut self, byte: u8) -> Result<(), Self::Error>8     fn write(&mut self, byte: u8) -> Result<(), Self::Error> {
9         (**self).write(byte)
10     }
11 
write_all(&mut self, buf: &[u8]) -> Result<(), Self::Error>12     fn write_all(&mut self, buf: &[u8]) -> Result<(), Self::Error> {
13         (**self).write_all(buf)
14     }
15 
flush(&mut self) -> Result<(), Self::Error>16     fn flush(&mut self) -> Result<(), Self::Error> {
17         (**self).flush()
18     }
19 
on_session_start(&mut self) -> Result<(), Self::Error>20     fn on_session_start(&mut self) -> Result<(), Self::Error> {
21         (**self).on_session_start()
22     }
23 }
24 
25 impl<E> Connection for Box<dyn ConnectionExt<Error = E>> {
26     type Error = E;
27 
write(&mut self, byte: u8) -> Result<(), Self::Error>28     fn write(&mut self, byte: u8) -> Result<(), Self::Error> {
29         (**self).write(byte)
30     }
31 
write_all(&mut self, buf: &[u8]) -> Result<(), Self::Error>32     fn write_all(&mut self, buf: &[u8]) -> Result<(), Self::Error> {
33         (**self).write_all(buf)
34     }
35 
flush(&mut self) -> Result<(), Self::Error>36     fn flush(&mut self) -> Result<(), Self::Error> {
37         (**self).flush()
38     }
39 
on_session_start(&mut self) -> Result<(), Self::Error>40     fn on_session_start(&mut self) -> Result<(), Self::Error> {
41         (**self).on_session_start()
42     }
43 }
44 
45 impl<E> ConnectionExt for Box<dyn ConnectionExt<Error = E>> {
read(&mut self) -> Result<u8, Self::Error>46     fn read(&mut self) -> Result<u8, Self::Error> {
47         (**self).read()
48     }
49 
peek(&mut self) -> Result<Option<u8>, Self::Error>50     fn peek(&mut self) -> Result<Option<u8>, Self::Error> {
51         (**self).peek()
52     }
53 }
54