pub struct State<'d, D, B>where
D: Session<'d>,{ /* private fields */ }Expand description
One protocol-neutral session paired with its carrier-owned input buffer.
Implementations§
Source§impl<'d, D, B> State<'d, D, B>
impl<'d, D, B> State<'d, D, B>
pub fn open(session: D, buffer: B) -> Self
pub fn finished(session: D, buffer: B) -> Self
Sourcepub fn into_buffer(self) -> B
pub fn into_buffer(self) -> B
Cancels the session and returns its queued carrier input.
pub const fn status(&self) -> Status
pub fn work(&self) -> Work
Sourcepub fn push(
&mut self,
input: B::Input,
boundary: Boundary,
) -> Result<(), PushError<B::Input, B::Error>>
pub fn push( &mut self, input: B::Input, boundary: Boundary, ) -> Result<(), PushError<B::Input, B::Error>>
Appends one exact DATA owner to the carrier buffer without exposing the session machine between admission and callback consumption.
Sourcepub fn finish(&mut self) -> Result<(), FinishError>
pub fn finish(&mut self) -> Result<(), FinishError>
Records one peer FIN. Empty input can enter the machine immediately; queued bytes retain priority over the terminal callback.
Sourcepub fn transact<R, E>(
&mut self,
admit: impl for<'turn> FnOnce(Emission<'turn, 'd, D>) -> Admission<'turn, 'd, D, R, E>,
) -> Turn<Transaction<R, E>, B::Receipt>
pub fn transact<R, E>( &mut self, admit: impl for<'turn> FnOnce(Emission<'turn, 'd, D>) -> Admission<'turn, 'd, D, R, E>, ) -> Turn<Transaction<R, E>, B::Receipt>
Removes at most one carrier quantum and executes exactly one canonical session/admission transaction. The returned receipt proves which carrier quantum was removed during this transaction.
Auto Trait Implementations§
impl<'d, D, B> !RefUnwindSafe for State<'d, D, B>
impl<'d, D, B> !Send for State<'d, D, B>
impl<'d, D, B> !Sync for State<'d, D, B>
impl<'d, D, B> !UnwindSafe for State<'d, D, B>
impl<'d, D, B> Forget for State<'d, D, B>
impl<'d, D, B> Freeze for State<'d, D, B>
impl<'d, D, B> Unpin for State<'d, D, B>
impl<'d, D, B> UnsafeUnpin for State<'d, D, B>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more