Trait simple_parse::SpReadRaw[][src]

pub trait SpReadRaw<'b> {
    fn inner_from_slice(
        src: &mut Cursor<&'b [u8]>,
        ctx: &mut SpCtx
    ) -> Result<Self, SpError>
    where
        Self: Sized + SpOptHints
;
unsafe fn inner_from_slice_unchecked(
        checked_bytes: *const u8,
        src: &mut Cursor<&'b [u8]>,
        ctx: &mut SpCtx
    ) -> Result<Self, SpError>
    where
        Self: Sized + SpOptHints
; fn from_slice(src: &mut Cursor<&'b [u8]>) -> Result<Self, SpError>
    where
        Self: Sized + SpOptHints
, { ... } }

Parses Self from a Cursor<&[u8]>

Required methods

fn inner_from_slice(
    src: &mut Cursor<&'b [u8]>,
    ctx: &mut SpCtx
) -> Result<Self, SpError> where
    Self: Sized + SpOptHints
[src]

Converts bytes from a Cursor<&[u8]> into Self

This functions allows specifying endianness and count fields as opposed to using defaults with from_slice

unsafe fn inner_from_slice_unchecked(
    checked_bytes: *const u8,
    src: &mut Cursor<&'b [u8]>,
    ctx: &mut SpCtx
) -> Result<Self, SpError> where
    Self: Sized + SpOptHints
[src]

Converts bytes from a Cursor<&[u8]> into Self with some assumptions on checked_bytes

Safety

This function assumes that checked_bytes points to at least Self::STATIC_SIZE bytes.

If this is implemented on a dynamic type, the implementors MUST check if count is provided. If it is provided, Self::COUNT_SIZE less bytes can be trusted from checked_bytes.

This function also allows returning references into the Cursor<&[u8]> when Self is a reference &T. This should not be done if Self itself contains non-primitive types, references, slices, etc…

Loading content...

Provided methods

fn from_slice(src: &mut Cursor<&'b [u8]>) -> Result<Self, SpError> where
    Self: Sized + SpOptHints
[src]

Converts bytes from a Cursor<&[u8]> into Self

Loading content...

Implementations on Foreign Types

impl<'b> SpReadRaw<'b> for u8[src]

impl<'b> SpReadRaw<'b> for &u8[src]

impl<'b> SpReadRaw<'b> for &[u8][src]

impl<'b> SpReadRaw<'b> for u16[src]

impl<'b> SpReadRaw<'b> for &u16[src]

impl<'b> SpReadRaw<'b> for &[u16][src]

impl<'b> SpReadRaw<'b> for u32[src]

impl<'b> SpReadRaw<'b> for &u32[src]

impl<'b> SpReadRaw<'b> for &[u32][src]

impl<'b> SpReadRaw<'b> for u64[src]

impl<'b> SpReadRaw<'b> for &u64[src]

impl<'b> SpReadRaw<'b> for &[u64][src]

impl<'b> SpReadRaw<'b> for u128[src]

impl<'b> SpReadRaw<'b> for &u128[src]

impl<'b> SpReadRaw<'b> for &[u128][src]

impl<'b> SpReadRaw<'b> for usize[src]

impl<'b> SpReadRaw<'b> for &usize[src]

impl<'b> SpReadRaw<'b> for &[usize][src]

impl<'b> SpReadRaw<'b> for i8[src]

impl<'b> SpReadRaw<'b> for &i8[src]

impl<'b> SpReadRaw<'b> for &[i8][src]

impl<'b> SpReadRaw<'b> for i16[src]

impl<'b> SpReadRaw<'b> for &i16[src]

impl<'b> SpReadRaw<'b> for &[i16][src]

impl<'b> SpReadRaw<'b> for i32[src]

impl<'b> SpReadRaw<'b> for &i32[src]

impl<'b> SpReadRaw<'b> for &[i32][src]

impl<'b> SpReadRaw<'b> for i64[src]

impl<'b> SpReadRaw<'b> for &i64[src]

impl<'b> SpReadRaw<'b> for &[i64][src]

impl<'b> SpReadRaw<'b> for i128[src]

impl<'b> SpReadRaw<'b> for &i128[src]

impl<'b> SpReadRaw<'b> for &[i128][src]

impl<'b> SpReadRaw<'b> for isize[src]

impl<'b> SpReadRaw<'b> for &isize[src]

impl<'b> SpReadRaw<'b> for &[isize][src]

impl<'b> SpReadRaw<'b> for bool[src]

impl<'b> SpReadRaw<'b> for f32[src]

impl<'b> SpReadRaw<'b> for &f32[src]

impl<'b> SpReadRaw<'b> for &[f32][src]

impl<'b> SpReadRaw<'b> for f64[src]

impl<'b> SpReadRaw<'b> for &f64[src]

impl<'b> SpReadRaw<'b> for &[f64][src]

impl<'b> SpReadRaw<'b> for AtomicU8[src]

impl<'b> SpReadRaw<'b> for &AtomicU8[src]

impl<'b> SpReadRaw<'b> for &[AtomicU8][src]

impl<'b> SpReadRaw<'b> for AtomicU16[src]

impl<'b> SpReadRaw<'b> for &AtomicU16[src]

impl<'b> SpReadRaw<'b> for &[AtomicU16][src]

impl<'b> SpReadRaw<'b> for AtomicU32[src]

impl<'b> SpReadRaw<'b> for &AtomicU32[src]

impl<'b> SpReadRaw<'b> for &[AtomicU32][src]

impl<'b> SpReadRaw<'b> for AtomicU64[src]

impl<'b> SpReadRaw<'b> for &AtomicU64[src]

impl<'b> SpReadRaw<'b> for &[AtomicU64][src]

impl<'b> SpReadRaw<'b> for AtomicUsize[src]

impl<'b> SpReadRaw<'b> for &AtomicUsize[src]

impl<'b> SpReadRaw<'b> for &[AtomicUsize][src]

impl<'b> SpReadRaw<'b> for AtomicI8[src]

impl<'b> SpReadRaw<'b> for &AtomicI8[src]

impl<'b> SpReadRaw<'b> for &[AtomicI8][src]

impl<'b> SpReadRaw<'b> for AtomicI16[src]

impl<'b> SpReadRaw<'b> for &AtomicI16[src]

impl<'b> SpReadRaw<'b> for &[AtomicI16][src]

impl<'b> SpReadRaw<'b> for AtomicI32[src]

impl<'b> SpReadRaw<'b> for &AtomicI32[src]

impl<'b> SpReadRaw<'b> for &[AtomicI32][src]

impl<'b> SpReadRaw<'b> for AtomicI64[src]

impl<'b> SpReadRaw<'b> for &AtomicI64[src]

impl<'b> SpReadRaw<'b> for &[AtomicI64][src]

impl<'b> SpReadRaw<'b> for AtomicIsize[src]

impl<'b> SpReadRaw<'b> for &AtomicIsize[src]

impl<'b> SpReadRaw<'b> for &[AtomicIsize][src]

impl<'b> SpReadRaw<'b> for AtomicBool[src]

impl<'b> SpReadRaw<'b> for NonZeroU8[src]

impl<'b> SpReadRaw<'b> for &NonZeroU8[src]

impl<'b> SpReadRaw<'b> for &[NonZeroU8][src]

impl<'b> SpReadRaw<'b> for NonZeroU16[src]

impl<'b> SpReadRaw<'b> for &NonZeroU16[src]

impl<'b> SpReadRaw<'b> for &[NonZeroU16][src]

impl<'b> SpReadRaw<'b> for NonZeroU32[src]

impl<'b> SpReadRaw<'b> for &NonZeroU32[src]

impl<'b> SpReadRaw<'b> for &[NonZeroU32][src]

impl<'b> SpReadRaw<'b> for NonZeroU64[src]

impl<'b> SpReadRaw<'b> for &NonZeroU64[src]

impl<'b> SpReadRaw<'b> for &[NonZeroU64][src]

impl<'b> SpReadRaw<'b> for NonZeroU128[src]

impl<'b> SpReadRaw<'b> for &NonZeroU128[src]

impl<'b> SpReadRaw<'b> for &[NonZeroU128][src]

impl<'b> SpReadRaw<'b> for NonZeroUsize[src]

impl<'b> SpReadRaw<'b> for &NonZeroUsize[src]

impl<'b> SpReadRaw<'b> for &[NonZeroUsize][src]

impl<'b> SpReadRaw<'b> for NonZeroI8[src]

impl<'b> SpReadRaw<'b> for &NonZeroI8[src]

impl<'b> SpReadRaw<'b> for &[NonZeroI8][src]

impl<'b> SpReadRaw<'b> for NonZeroI16[src]

impl<'b> SpReadRaw<'b> for &NonZeroI16[src]

impl<'b> SpReadRaw<'b> for &[NonZeroI16][src]

impl<'b> SpReadRaw<'b> for NonZeroI32[src]

impl<'b> SpReadRaw<'b> for &NonZeroI32[src]

impl<'b> SpReadRaw<'b> for &[NonZeroI32][src]

impl<'b> SpReadRaw<'b> for NonZeroI64[src]

impl<'b> SpReadRaw<'b> for &NonZeroI64[src]

impl<'b> SpReadRaw<'b> for &[NonZeroI64][src]

impl<'b> SpReadRaw<'b> for NonZeroI128[src]

impl<'b> SpReadRaw<'b> for &NonZeroI128[src]

impl<'b> SpReadRaw<'b> for &[NonZeroI128][src]

impl<'b> SpReadRaw<'b> for NonZeroIsize[src]

impl<'b> SpReadRaw<'b> for &NonZeroIsize[src]

impl<'b> SpReadRaw<'b> for &[NonZeroIsize][src]

impl<'b> SpReadRaw<'b> for &'b str[src]

impl<'b> SpReadRaw<'b> for String[src]

impl<'b> SpReadRaw<'b> for &'b CStr[src]

impl<'b> SpReadRaw<'b> for CString[src]

impl<'b, T: SpReadRaw<'b> + SpOptHints> SpReadRaw<'b> for Option<T>[src]

impl<'b, T: SpReadRaw<'b> + SpOptHints> SpReadRaw<'b> for Vec<T>[src]

impl<'b, T: SpReadRaw<'b> + SpOptHints> SpReadRaw<'b> for VecDeque<T>[src]

impl<'b, T: SpReadRaw<'b> + SpOptHints> SpReadRaw<'b> for LinkedList<T>[src]

impl<'b, K: SpReadRaw<'b> + SpOptHints + Eq + Hash> SpReadRaw<'b> for HashSet<K>[src]

impl<'b, K: SpReadRaw<'b> + SpOptHints + Ord> SpReadRaw<'b> for BTreeSet<K>[src]

impl<'b, K: SpReadRaw<'b> + SpOptHints + Eq + Hash, V: SpReadRaw<'b> + SpOptHints> SpReadRaw<'b> for HashMap<K, V>[src]

impl<'b, K: SpReadRaw<'b> + SpOptHints + Ord, V: SpReadRaw<'b> + SpOptHints> SpReadRaw<'b> for BTreeMap<K, V>[src]

impl<'b, T: SpReadRaw<'b> + SpOptHints + Ord> SpReadRaw<'b> for BinaryHeap<T>[src]

Loading content...

Implementors

Loading content...