pub struct ProductReaderState {
pub buffer: Vec<u8>,
pub done: bool,
pub last_error: Option<Error>,
pub max_buffer_overflowed: bool,
pub loop_ptr: *mut PosixLoop,
pub event_loop: EventLoopCtx,
}Expand description
Thin parent state shared by all product residual BufferedReader variants.
Callbacks update only these fields (disjoint from any embedded
BufferedReader the domain type may hold later).
Fields§
§buffer: Vec<u8>Accumulated chunks when HAS_ON_READ_CHUNK is true.
done: boolSet by on_reader_done / on_reader_error / max-buffer overflow.
last_error: Option<Error>Last error from on_reader_error (moved in).
max_buffer_overflowed: boolSubprocess max-buffer budget tripped.
loop_ptr: *mut PosixLoopNative loop backref (null until wired by the domain owner).
event_loop: EventLoopCtxBy-value event-loop handle (EventLoopCtx::default() = Mini + null).
Implementations§
Source§impl ProductReaderState
impl ProductReaderState
pub fn new() -> ProductReaderState
Sourcepub fn with_event_loop(
self,
loop_ptr: *mut PosixLoop,
event_loop: EventLoopCtx,
) -> ProductReaderState
pub fn with_event_loop( self, loop_ptr: *mut PosixLoop, event_loop: EventLoopCtx, ) -> ProductReaderState
Wire a real Mini/Js event loop before attaching a live BufferedReader.
pub fn on_read_chunk(&mut self, chunk: &[u8], _has_more: ReadState) -> bool
pub fn on_reader_done(&mut self)
pub fn on_reader_error(&mut self, err: Error)
pub fn on_max_buffer_overflow(&mut self, _maxbuf: NonNull<MaxBuf>)
Trait Implementations§
Source§impl Default for ProductReaderState
impl Default for ProductReaderState
Source§fn default() -> ProductReaderState
fn default() -> ProductReaderState
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for ProductReaderState
impl !Send for ProductReaderState
impl !Sync for ProductReaderState
impl !UnwindSafe for ProductReaderState
impl Freeze for ProductReaderState
impl Unpin for ProductReaderState
impl UnsafeUnpin for ProductReaderState
Blanket Implementations§
Source§impl<T> AsCtxPtr for Twhere
T: ?Sized,
impl<T> AsCtxPtr for Twhere
T: ?Sized,
Source§fn as_ctx_ptr(&self) -> *mut Selfwhere
Self: Sized,
fn as_ctx_ptr(&self) -> *mut Selfwhere
Self: Sized,
self’s address as *mut Self for deferred-task / scopeguard /
ref_guard ctx slots. The closures/trampolines deref it as shared
(&*p) — every method they reach is &self post-R-2, so no write
provenance is required; the *mut spelling is purely to match the
existing DerefOnDrop / HasAutoFlush / RefCount ABI.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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
Creates a filterable data provider with the given name for debugging. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> MaybeBoxed<Box<T>> for T
impl<T> MaybeBoxed<Box<T>> for T
Source§fn maybe_boxed(self) -> Box<T>
fn maybe_boxed(self) -> Box<T>
Convert
Source§impl<T> MaybeBoxed<T> for T
impl<T> MaybeBoxed<T> for T
Source§fn maybe_boxed(self) -> T
fn maybe_boxed(self) -> T
Convert