Skip to main content

PostcardParser

Struct PostcardParser 

Source
pub struct PostcardParser<'de> { /* private fields */ }
Expand description

Postcard parser for Tier-0 and Tier-2 deserialization.

For Tier-0, the parser relies on hint_struct_fields to know how many fields to expect in structs. Sequences are length-prefixed in the wire format.

Implementations§

Source§

impl<'de> PostcardParser<'de>

Source

pub const fn new(input: &'de [u8]) -> Self

Create a new postcard parser from input bytes.

Source

pub fn parse_bool(&mut self) -> Result<bool, PostcardError>

Parse a boolean value.

Source

pub fn parse_u8(&mut self) -> Result<u8, PostcardError>

Parse an unsigned 8-bit integer.

Source

pub fn parse_u16(&mut self) -> Result<u16, PostcardError>

Parse an unsigned 16-bit integer (varint).

Source

pub fn parse_u32(&mut self) -> Result<u32, PostcardError>

Parse an unsigned 32-bit integer (varint).

Source

pub fn parse_u64(&mut self) -> Result<u64, PostcardError>

Parse an unsigned 64-bit integer (varint).

Source

pub fn parse_u128(&mut self) -> Result<u128, PostcardError>

Parse an unsigned 128-bit integer (varint).

Source

pub fn parse_i8(&mut self) -> Result<i8, PostcardError>

Parse a signed 8-bit integer (single byte, two’s complement).

Source

pub fn parse_i16(&mut self) -> Result<i16, PostcardError>

Parse a signed 16-bit integer (zigzag varint).

Source

pub fn parse_i32(&mut self) -> Result<i32, PostcardError>

Parse a signed 32-bit integer (zigzag varint).

Source

pub fn parse_i64(&mut self) -> Result<i64, PostcardError>

Parse a signed 64-bit integer (zigzag varint).

Source

pub fn parse_i128(&mut self) -> Result<i128, PostcardError>

Parse a signed 128-bit integer (zigzag varint).

Source

pub fn parse_f32(&mut self) -> Result<f32, PostcardError>

Parse a 32-bit float (little-endian).

Source

pub fn parse_f64(&mut self) -> Result<f64, PostcardError>

Parse a 64-bit float (little-endian).

Source

pub fn parse_string(&mut self) -> Result<&'de str, PostcardError>

Parse a string (varint length + UTF-8 bytes).

Source

pub fn parse_bytes(&mut self) -> Result<&'de [u8], PostcardError>

Parse bytes (varint length + raw bytes).

Source

pub fn begin_sequence(&mut self) -> Result<u64, PostcardError>

Begin parsing a sequence, returning the element count.

Trait Implementations§

Source§

impl<'de> FormatParser<'de> for PostcardParser<'de>

Source§

type Error = PostcardError

Parser-specific error type.
Source§

type Probe<'a> = PostcardProbe where Self: 'a

Evidence cursor type produced by FormatParser::begin_probe.
Source§

fn next_event(&mut self) -> Result<Option<ParseEvent<'de>>, Self::Error>

Read the next parse event, or None if the input is exhausted. Read more
Source§

fn peek_event(&mut self) -> Result<Option<ParseEvent<'de>>, Self::Error>

Peek at the next event without consuming it, or None if at EOF.
Source§

fn skip_value(&mut self) -> Result<(), Self::Error>

Skip the current value (for unknown fields, etc.).
Source§

fn begin_probe(&mut self) -> Result<Self::Probe<'_>, Self::Error>

Begin evidence collection for untagged-enum resolution.
Source§

fn is_self_describing(&self) -> bool

Returns true if this format is self-describing. Read more
Source§

fn hint_struct_fields(&mut self, num_fields: usize)

Hint to the parser that a struct with the given number of fields is expected. Read more
Source§

fn hint_scalar_type(&mut self, hint: ScalarTypeHint)

Hint to the parser what scalar type is expected next. Read more
Source§

fn hint_sequence(&mut self)

Hint to the parser that a sequence (array/Vec) is expected. Read more
Source§

fn hint_byte_sequence(&mut self) -> bool

Hint to the parser that a byte sequence (Vec<u8>, &[u8], etc.) is expected. Read more
Source§

fn hint_array(&mut self, len: usize)

Hint to the parser that a fixed-size array is expected. Read more
Source§

fn hint_option(&mut self)

Hint to the parser that an Option<T> is expected. Read more
Source§

fn hint_enum(&mut self, variants: &[EnumVariantHint])

Hint to the parser that an enum is expected, providing variant information. Read more
Source§

fn hint_map(&mut self)

Hint to the parser that a map is expected. Read more
Source§

fn hint_dynamic_value(&mut self)

Hint to the parser that a dynamic value is expected. Read more
Source§

fn hint_opaque_scalar( &mut self, type_identifier: &'static str, shape: &'static Shape, ) -> bool

Hint to the parser that an opaque scalar type is expected. Read more
Source§

fn capture_raw(&mut self) -> Result<Option<&'de str>, Self::Error>

Capture the raw representation of the current value without parsing it. Read more
Source§

fn raw_capture_shape(&self) -> Option<&'static Shape>

Returns the shape of the format’s raw capture type (e.g., RawJson::SHAPE). Read more
Source§

fn current_span(&self) -> Option<Span>

Returns the source span of the most recently consumed event. Read more
Source§

fn format_namespace(&self) -> Option<&'static str>

Returns the format namespace for format-specific proxy resolution. Read more

Auto Trait Implementations§

§

impl<'de> Freeze for PostcardParser<'de>

§

impl<'de> RefUnwindSafe for PostcardParser<'de>

§

impl<'de> Send for PostcardParser<'de>

§

impl<'de> Sync for PostcardParser<'de>

§

impl<'de> Unpin for PostcardParser<'de>

§

impl<'de> UnwindSafe for PostcardParser<'de>

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, 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.