dope-session 0.2.0

Thin io_uring adaptor with "Manifolds"
Documentation
pub trait Codec: 'static {
    type ConnState: Default + 'static;

    const IS_PLAIN: bool = false;

    #[inline(always)]
    fn is_active(_state: &Self::ConnState) -> bool {
        true
    }

    #[inline(always)]
    fn process_inbound(_state: &mut Self::ConnState, _wire_in: &[u8]) -> usize {
        unreachable!("Codec::process_inbound on IS_PLAIN codec")
    }

    #[inline(always)]
    fn take_plaintext(_state: &mut Self::ConnState) -> Vec<u8> {
        unreachable!("Codec::take_plaintext on IS_PLAIN codec")
    }

    #[inline(always)]
    fn install_plaintext(_state: &mut Self::ConnState, _plaintext: Vec<u8>) {
        unreachable!("Codec::install_plaintext on IS_PLAIN codec")
    }

    #[inline(always)]
    fn process_outbound(_state: &mut Self::ConnState, _plaintext_in: &[u8]) {
        unreachable!("Codec::process_outbound on IS_PLAIN codec")
    }

    #[inline(always)]
    fn wire_slice(_state: &Self::ConnState) -> &[u8] {
        &[]
    }

    #[inline(always)]
    fn take_inflight(_state: &mut Self::ConnState) -> Option<(*const u8, u32)> {
        unreachable!("Codec::take_inflight on IS_PLAIN codec")
    }

    #[inline(always)]
    fn consume_inflight(_state: &mut Self::ConnState, _n: usize) -> bool {
        unreachable!("Codec::consume_inflight on IS_PLAIN codec")
    }

    #[inline(always)]
    fn has_inflight(_state: &Self::ConnState) -> bool {
        false
    }

    #[inline(always)]
    fn close_pending(_state: &Self::ConnState) -> bool {
        false
    }
}

pub struct Plain;

impl Codec for Plain {
    type ConnState = ();
    const IS_PLAIN: bool = true;
}