Skip to main content

ReadStatBufferCtx

Struct ReadStatBufferCtx 

Source
#[repr(C)]
pub struct ReadStatBufferCtx<'a> { data: *const u8, len: usize, pos: usize, _marker: PhantomData<&'a [u8]>, }
Expand description

In-memory buffer context for ReadStat I/O callbacks.

Wraps a borrowed byte slice and tracks the current read position. Passed as the io_ctx pointer to all I/O handler callbacks.

The 'a lifetime ties the context to the borrowed byte slice so the compiler enforces that the buffer outlives the context (and therefore any parse driven through it). The trailing PhantomData carries that lifetime without changing the C-visible layout — it is zero-sized, so the #[repr(C)] field order seen from C (data, len, pos) is unaffected.

Fields§

§data: *const u8§len: usize§pos: usize§_marker: PhantomData<&'a [u8]>

Implementations§

Source§

impl<'a> ReadStatBufferCtx<'a>

Source

pub const fn new(bytes: &'a [u8]) -> Self

Creates a new buffer context from a byte slice.

The returned context borrows bytes; the borrow checker guarantees the slice outlives the context and any parsing operations that use it.

Source

pub fn configure_parser( &mut self, parser: ReadStatParser, ) -> Result<ReadStatParser, ReadStatError>

Configures a ReadStatParser to read from this buffer context instead of from a file.

Auto Trait Implementations§

§

impl<'a> Freeze for ReadStatBufferCtx<'a>

§

impl<'a> RefUnwindSafe for ReadStatBufferCtx<'a>

§

impl<'a> !Send for ReadStatBufferCtx<'a>

§

impl<'a> !Sync for ReadStatBufferCtx<'a>

§

impl<'a> Unpin for ReadStatBufferCtx<'a>

§

impl<'a> UnsafeUnpin for ReadStatBufferCtx<'a>

§

impl<'a> UnwindSafe for ReadStatBufferCtx<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,