Terminated

Trait Terminated 

Source
pub trait Terminated { }
Expand description

A type is Terminated the length of the value being read can be determined when decoding.

Since Terminated is an auto trait, it is automatically present for any type made of fields which are all Terminated.

Consider a type like u32 - it is always 4 bytes long. If a slice of length 5 was passed to its decode method, it would know to stop reading after the 4th byte, which means it is Terminated.

For an example of something which is NOT terminated, consider Vec<u8>. Its encoding and decoding do not use a length prefix or end with a null byte, so decode would have no way to know where to stop reading.

Implementations on Foreign Types§

Source§

impl Terminated for bool

Source§

impl Terminated for i8

Source§

impl Terminated for i16

Source§

impl Terminated for i32

Source§

impl Terminated for i64

Source§

impl Terminated for i128

Source§

impl Terminated for u8

Source§

impl Terminated for u16

Source§

impl Terminated for u32

Source§

impl Terminated for u64

Source§

impl Terminated for u128

Source§

impl Terminated for ()

Source§

impl<A: Terminated> Terminated for (A,)

Source§

impl<A: Terminated, B: Terminated> Terminated for (A, B)

Source§

impl<A: Terminated, B: Terminated, C: Terminated> Terminated for (A, B, C)

Source§

impl<A: Terminated, B: Terminated, C: Terminated, D: Terminated> Terminated for (A, B, C, D)

Source§

impl<A: Terminated, B: Terminated, C: Terminated, D: Terminated, E: Terminated> Terminated for (A, B, C, D, E)

Source§

impl<A: Terminated, B: Terminated, C: Terminated, D: Terminated, E: Terminated, F: Terminated> Terminated for (A, B, C, D, E, F)

Source§

impl<A: Terminated, B: Terminated, C: Terminated, D: Terminated, E: Terminated, F: Terminated, G: Terminated> Terminated for (A, B, C, D, E, F, G)

Source§

impl<A: Terminated, B: Terminated, C: Terminated, D: Terminated, E: Terminated, F: Terminated, G: Terminated, H: Terminated> Terminated for (A, B, C, D, E, F, G, H)

Source§

impl<A: Terminated, B: Terminated, C: Terminated, D: Terminated, E: Terminated, F: Terminated, G: Terminated, H: Terminated, I: Terminated> Terminated for (A, B, C, D, E, F, G, H, I)

Source§

impl<A: Terminated, B: Terminated, C: Terminated, D: Terminated, E: Terminated, F: Terminated, G: Terminated, H: Terminated, I: Terminated, J: Terminated> Terminated for (A, B, C, D, E, F, G, H, I, J)

Source§

impl<A: Terminated, B: Terminated, C: Terminated, D: Terminated, E: Terminated, F: Terminated, G: Terminated, H: Terminated, I: Terminated, J: Terminated, K: Terminated> Terminated for (A, B, C, D, E, F, G, H, I, J, K)

Source§

impl<A: Terminated, B: Terminated, C: Terminated, D: Terminated, E: Terminated, F: Terminated, G: Terminated, H: Terminated, I: Terminated, J: Terminated, K: Terminated, L: Terminated> Terminated for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

impl<T> Terminated for PhantomData<T>

Source§

impl<T: Terminated> Terminated for Option<T>

Source§

impl<T: Terminated, const N: usize> Terminated for [T; N]

Implementors§