[][src]Trait sbp::Parser

pub trait Parser<'a, Target> {
    type Error: OutOfSpaceError;
    type Meta;
    fn parse(
        meta: Self::Meta,
        bytes: &'a [u8]
    ) -> Result<(Target, usize), Self::Error>; }

Represents a parser that can parse a sequency of bytes into a meaningful type.

Associated Types

type Error: OutOfSpaceError

The error that the parsing can result in.

type Meta

An arbitrary additional value provided, this will usually be (). When const generics comes, this probably won't be required.

Loading content...

Required methods

fn parse(
    meta: Self::Meta,
    bytes: &'a [u8]
) -> Result<(Target, usize), Self::Error>

Parse bytes. The bytes may or may not have an adequately size for successful parsing, this should be taken into account when implementing a parser.

Loading content...

Implementors

impl<'a> Parser<'a, i128> for Le[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, i128> for Be[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, i16> for Le[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, i16> for Be[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, i32> for Le[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, i32> for Be[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, i64> for Le[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, i64> for Be[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, i8> for Le[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, i8> for Be[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, u128> for Le[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, u128> for Be[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, u16> for Le[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, u16> for Be[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, u32> for Le[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, u32> for Be[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, u64> for Le[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, u64> for Be[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, u8> for Le[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a> Parser<'a, u8> for Be[src]

type Error = BasicOutOfSpaceError

type Meta = ()

impl<'a, T> Parser<'a, T> for Take where
    T: From<&'a [u8]>, 
[src]

type Error = BasicOutOfSpaceError

type Meta = usize

Loading content...