[−][src]Trait ed::Terminated
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
impl Terminated for isize
impl Terminated for usize
impl Terminated for f32
impl Terminated for f64
impl Terminated for char
impl Terminated for str
impl<T, const N: usize> Terminated for [T; N] where
T: Terminated,
T: Terminated,
impl<T> Terminated for [T] where
T: Terminated,
T: Terminated,
impl Terminated for [u8]
impl<T: ?Sized> Terminated for *const T where
T: Terminated,
T: Terminated,
impl<T: ?Sized> Terminated for *mut T where
T: Terminated,
T: Terminated,
impl<T> Terminated for *const [T] where
T: Terminated,
T: Terminated,
impl<T> Terminated for *mut [T] where
T: Terminated,
T: Terminated,