#[doc(hidden)]
#[derive(Debug)]
pub struct CommonReceiveAndTransmitSeparately<RP: ReceivePoll, TS: TransmitSend>(CommonReceiveOnly<RP>, CommonTransmitOnly<TS>);
impl<RP: ReceivePoll, TS: TransmitSend> Supports for CommonReceiveAndTransmitSeparately<RP, TS>
{
const SupportsReceive: bool = true;
const SupportsTransmit: bool = true;
}
impl<RP: ReceivePoll, TS: TransmitSend> ReceiveOrTransmitOrBoth for CommonReceiveAndTransmitSeparately<RP, TS>
{
type RP = RP;
type TS = TS;
}
impl<RP: ReceivePoll, TS: TransmitSend> Receives<CommonReceiveOnly<RP>> for CommonReceiveAndTransmitSeparately<RP, TS>
{
#[inline(always)]
fn receive(&self) -> &CommonReceiveOnly<RP>
{
self.0.receive()
}
}
impl<RP: ReceivePoll, TS: TransmitSend> Transmits<CommonTransmitOnly<TS>> for CommonReceiveAndTransmitSeparately<RP, TS>
{
#[inline(always)]
fn transmit(&self) -> &CommonTransmitOnly<TS>
{
self.1.transmit()
}
}
impl<RP: ReceivePoll, TS: TransmitSend> CommonReceiveAndTransmitSeparately<RP, TS>
{
#[inline(always)]
pub(crate) const fn new(common_receive_only: CommonReceiveOnly<RP>, common_transmit_only: CommonTransmitOnly<TS>) -> Self
{
Self(common_receive_only, common_transmit_only)
}
}