dope-net 0.31.0

Owned network transports for dope
Documentation
pub(in crate::link::egress::metadata) mod chain;
mod draft;
mod empty;
mod error;
mod plan;
mod rejected;

pub(in crate::link::egress) use draft::Draft;
pub use empty::Empty;
pub use error::Error;
pub use plan::Plan;
pub use rejected::Rejected;

use crate::link::egress;

pub struct Sink<'batch, 'queue, 'token, 'p, 'd, T> {
    draft: &'batch mut Draft<'queue, 'token, 'p, 'd, T>,
}

impl<'batch, 'queue, 'token, 'p, 'd, T> Sink<'batch, 'queue, 'token, 'p, 'd, T> {
    pub(in crate::link::egress::metadata) fn new(
        draft: &'batch mut Draft<'queue, 'token, 'p, 'd, T>,
    ) -> Self {
        Self { draft }
    }

    pub fn try_push(&mut self, load: egress::NonEmpty<T>) -> Result<(), Rejected<T>> {
        self.draft.try_push(load)
    }
}

const _: () = assert!(
    std::mem::size_of::<Sink<'static, 'static, 'static, 'static, 'static, ()>>()
        == std::mem::size_of::<usize>()
);