dope-sys 0.23.0

Typed operating-system call contracts
Documentation
use crate::{
    io::reactor::{
        ready,
        retry::{Complete, Context, Entry, State},
    },
    table::{self, change},
};

pub trait Source: table::Source {
    type State<E: Entry>: State<E>;
    type Send<C: Context>: super::raw::Send<C>;
    type Pending<C: Context>: Entry<
        File = <<Self::Files<C::Slots> as table::Files<C::Slots>>::Changes as change::Changes>::Id,
    >;
    type Retry<'a, C, E, P>: super::raw::Write<
            'a,
            C,
            E,
            P,
            Files = Self::Files<C::Slots>,
            Entry = Self::Pending<C>,
            State = Self::State<Self::Pending<C>>,
            Send = Self::Send<C>,
            Failure = P::Failure,
        >
    where
        C: Context + 'a,
        C::Slots: 'a,
        E: Complete<C>,
        P: ready::Poll<
                C::Slots,
                Files = Self::Files<C::Slots>,
                Failure: ready::Failure<Operation = C::Operation>,
            > + 'a,
        Self::Files<C::Slots>: 'a,
        Self::State<Self::Pending<C>>: 'a;
}