pub trait Comms: WriteExt + ReadExt + Unpin { fn receive(&mut self) -> RecvFut<'_, Self> where Self: Sized; fn send<'a>(&'a mut self, buf: &'a [u8]) -> SendFut<'a, Self> where Self: Sized; }