Enum prototk::Error

source ·
pub enum Error {
    Success,
    BufferTooShort {
        required: usize,
        had: usize,
    },
    InvalidFieldNumber {
        field_number: u32,
        what: String,
    },
    UnhandledWireType {
        wire_type: u32,
    },
    TagTooLarge {
        tag: u64,
    },
    VarintOverflow {
        bytes: usize,
    },
    UnsignedOverflow {
        value: u64,
    },
    SignedOverflow {
        value: i64,
    },
    WrongLength {
        required: usize,
        had: usize,
    },
    StringEncoding,
    UnknownDiscriminant {
        discriminant: u32,
    },
    NotAChar {
        value: u32,
    },
}
Expand description

Error captures the possible error conditions for packing and unpacking.

Variants§

§

Success

The default error is succes.

§

BufferTooShort

BufferTooShort indicates that there was a need to pack or unpack more bytes than were available in the underlying memory.

Fields

§required: usize

The number of bytes required to unpack.

§had: usize

The number of bytes available to unpack.

§

InvalidFieldNumber

InvalidFieldNumber indicates that the field is not a user-assignable field.

Fields

§field_number: u32

The u32 field number that’s invalid.

§what: String

A human-readable description of why the field number is invalid.

§

UnhandledWireType

UnhandledWireType indicates that the wire_type is not understood by this process and cannot be skipped.

Fields

§wire_type: u32

The wire type that’s not handled.

§

TagTooLarge

TagTooLarge indicates the tag would overflow a 32-bit number.

Fields

§tag: u64

The tag that’s too large.

§

VarintOverflow

VarintOverflow indicates that a varint field did not terminate with a number < 128.

Fields

§bytes: usize

The number of bytes witnessed in the varint.

§

UnsignedOverflow

UnsignedOverflow indicates that a value will not fit its intended (unsigned) target.

Fields

§value: u64

The u64 that doesn’t fit a u32.

§

SignedOverflow

SignedOverflow indicates that a value will not fit its intended (signed) target.

Fields

§value: i64

The i64 that doesn’t fit an i32.

§

WrongLength

WrongLength indicates that a bytes32 did not have 32 bytes.

Fields

§required: usize

The required number of bytes for the type.

§had: usize

The number of bytes the type claims to be.

§

StringEncoding

StringEncoding indicates that a value is not UTF-8 friendly.

§

UnknownDiscriminant

UnknownDiscriminant indicates a variant that is not understood by this code.

Fields

§discriminant: u32

The discriminant that’s not handled by this process.

§

NotAChar

NotAChar indicates that the prescribed value was tried to unpack as a char, but it’s not a char.

Fields

§value: u32

Value that’s not a char.

Trait Implementations§

source§

impl Clone for Error

source§

fn clone(&self) -> Error

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Error

source§

fn default() -> Error

Returns the “default value” for a type. Read more
source§

impl Display for Error

source§

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'a> FieldPackHelper<'a, message<Error>> for Error

source§

fn field_pack_sz(&self, tag: &Tag) -> usize

The size of encoding self with tag.
source§

fn field_pack(&self, tag: &Tag, out: &mut [u8])

Pack the tag into the output buffer.
source§

impl<'a> FieldUnpackHelper<'a, message<Error>> for Error

source§

fn merge_field(&mut self, proto: message<Error>)

Merge the proto into self.
source§

impl From<Error> for Error

source§

fn from(x: Error) -> Self

Converts to this type from the input type.
source§

impl From<message<Error>> for Error

source§

fn from(proto: message<Error>) -> Self

Converts to this type from the input type.
source§

impl Packable for Error

source§

fn pack_sz(&self) -> usize

pack_sz returns the number of bytes required to serialize the Packable object.
source§

fn pack(&self, buf: &mut [u8])

pack fills in the buffer out with the packed binary representation of the Packable object. The implementor is responsible to ensure that out is exactly pack_sz() bytes and implementations are encouraged to assert this. Read more
source§

fn stream<W>(&self, writer: &mut W) -> Result<usize, Error>
where W: Write, Self: Sized, &'a Self: for<'a> Packable,

stream writes the object to the provided writer using the same representation that would be used in a call to pack. The implementor is responsible for making sure that the number of bytes written is exactly equal to the number of required bytes. Read more
source§

impl PartialEq for Error

source§

fn eq(&self, other: &Error) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a> Unpackable<'a> for Error

§

type Error = Error

Type of error this unpackable returns.
source§

fn unpack<'b>(buf: &'b [u8]) -> Result<(Self, &'b [u8]), Error>
where 'b: 'a,

unpack attempts to return an Unpackable object stored in a prefix of buf. The method returns the result and remaining unused buffer.
source§

impl Eq for Error

source§

impl<'a> Message<'a> for Error

source§

impl StructuralPartialEq for Error

Auto Trait Implementations§

§

impl Freeze for Error

§

impl RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnwindSafe for Error

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> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

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

§

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

§

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.