Enum ssz::DecodeError [−][src]
pub enum DecodeError {
InvalidByteLength {
len: usize,
expected: usize,
},
InvalidLengthPrefix {
len: usize,
expected: usize,
},
OutOfBoundsByte {
i: usize,
},
OffsetIntoFixedPortion(usize),
OffsetSkipsVariableBytes(usize),
OffsetsAreDecreasing(usize),
OffsetOutOfBounds(usize),
InvalidListFixedBytesLen(usize),
ZeroLengthItem,
BytesInvalid(String),
UnionSelectorInvalid(u8),
}
Expand description
Returned when SSZ decoding fails.
Variants
InvalidByteLength
The bytes supplied were too short to be decoded into the specified type.
InvalidLengthPrefix
The given bytes were too short to be read as a length prefix.
OutOfBoundsByte
Fields
i: usize
A length offset pointed to a byte that was out-of-bounds (OOB).
A bytes may be OOB for the following reasons:
- It is
>= bytes.len()
. - When decoding variable length items, the 1st offset points “backwards” into the fixed
length items (i.e.,
length[0] < BYTES_PER_LENGTH_OFFSET
). - When decoding variable-length items, the
n
’th offset was less than then-1
’th offset.
OffsetIntoFixedPortion(usize)
Tuple Fields
0: usize
An offset points “backwards” into the fixed-bytes portion of the message, essentially double-decoding bytes that will also be decoded as fixed-length.
https://notes.ethereum.org/ruKvDXl6QOW3gnqVYb8ezA?view#1-Offset-into-fixed-portion
OffsetSkipsVariableBytes(usize)
Tuple Fields
0: usize
The first offset does not point to the byte that follows the fixed byte portion, essentially skipping a variable-length byte.
https://notes.ethereum.org/ruKvDXl6QOW3gnqVYb8ezA?view#2-Skip-first-variable-byte
OffsetsAreDecreasing(usize)
Tuple Fields
0: usize
An offset points to bytes prior to the previous offset. Depending on how you look at it, this either double-decodes bytes or makes the first offset a negative-length.
https://notes.ethereum.org/ruKvDXl6QOW3gnqVYb8ezA?view#3-Offsets-are-decreasing
OffsetOutOfBounds(usize)
Tuple Fields
0: usize
An offset references byte indices that do not exist in the source bytes.
https://notes.ethereum.org/ruKvDXl6QOW3gnqVYb8ezA?view#4-Offsets-are-out-of-bounds
InvalidListFixedBytesLen(usize)
Tuple Fields
0: usize
A variable-length list does not have a fixed portion that is cleanly divisible by
BYTES_PER_LENGTH_OFFSET
.
ZeroLengthItem
Some item has a ssz_fixed_len
of zero. This is illegal.
BytesInvalid(String)
Tuple Fields
0: String
The given bytes were invalid for some application-level reason.
UnionSelectorInvalid(u8)
Tuple Fields
0: u8
The given union selector is out of bounds.
Trait Implementations
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Auto Trait Implementations
impl RefUnwindSafe for DecodeError
impl Send for DecodeError
impl Sync for DecodeError
impl Unpin for DecodeError
impl UnwindSafe for DecodeError
Blanket Implementations
Mutably borrows from an owned value. Read more