Encode

Trait Encode 

Source
pub trait Encode<W: Write> {
    // Required method
    fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>;
}
Expand description

A binary data structure specification which can be encoded into its binary representation.

Implementations that need to seek should implement for W: Write + Seek.

You should keep your implementation as general as possible and avoid implementing for a R = ConcreteType if possible

Required Methods§

Source

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Encodes self into its binary format.

Calling encode multiple times on the same value without changing the encoder settings or the value itself in-between calls should produce the same output.

If the result is Ok, implementations should guarantee that the state of the encoder is preserved. If the result is Err, no guarantees are made about the state of the encoder, and users should reset it before reuse.

Implementations on Foreign Types§

Source§

impl<'a, W: Write, T> Encode<W> for Cow<'a, T>
where T: Encode<W> + ?Sized + ToOwned, <T as ToOwned>::Owned: Encode<W>,

Available on crate feature alloc only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write + Seek> Encode<W> for ()

Source§

fn encode(&self, _encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for IpAddr

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for SocketAddr

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for bool

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for char

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for f32

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for f64

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for i8

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for i16

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for i32

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for i64

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for i128

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for isize

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for !

Available on crate feature unstable only.
Source§

fn encode(&self, _encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for str

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for u8

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for u16

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for u32

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for u64

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for u128

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for usize

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for CString

Available on crate feature alloc only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for String

Available on crate feature alloc only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for CStr

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for Ipv4Addr

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for Ipv6Addr

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for SocketAddrV4

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for SocketAddrV6

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for RangeFull

Source§

fn encode(&self, _encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for Duration

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for OsStr

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for OsString

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for Path

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for PathBuf

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for SystemTime

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for NonZeroI8

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for NonZeroI16

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for NonZeroI32

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for NonZeroI64

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for NonZeroI128

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for NonZeroIsize

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for NonZeroU8

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for NonZeroU16

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for NonZeroU32

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for NonZeroU64

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for NonZeroU128

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write> Encode<W> for NonZeroUsize

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, K: Encode<W>> Encode<W> for BTreeSet<K>

Available on crate feature alloc only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, K: Encode<W>> Encode<W> for HashSet<K>

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, K: Encode<W>, V: Encode<W>> Encode<W> for BTreeMap<K, V>

Available on crate feature alloc only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, K: Encode<W>, V: Encode<W>> Encode<W> for HashMap<K, V>

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T> Encode<W> for PhantomData<T>

Source§

fn encode(&self, _encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W> + Copy> Encode<W> for Cell<T>

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for Bound<T>

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for Option<T>

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for [T]

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for Box<T>

Available on crate feature alloc only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for BinaryHeap<T>

Available on crate feature alloc only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for LinkedList<T>

Available on crate feature alloc only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for VecDeque<T>

Available on crate feature alloc only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for Rc<T>

Available on crate feature alloc only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for Arc<T>

Available on crate features alloc and sync only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for Vec<T>

Available on crate feature alloc only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for RefCell<T>

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for Range<T>

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for RangeFrom<T>

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for RangeInclusive<T>

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for RangeTo<T>

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for Mutex<T>

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>> Encode<W> for RwLock<T>

Available on crate feature std only.
Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>, E: Encode<W>> Encode<W> for Result<T, E>

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: Encode<W>, const SIZE: usize> Encode<W> for [T; SIZE]

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: ?Sized + Encode<W>> Encode<W> for &T

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<W: Write, T: ?Sized + Encode<W>> Encode<W> for &mut T

Source§

fn encode(&self, encoder: &mut Encoder<'_, W>) -> EncodingResult<()>

Source§

impl<__W: Write, A: Encode<__W>, B: Encode<__W>> Encode<__W> for (A, B)

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Source§

impl<__W: Write, A: Encode<__W>, B: Encode<__W>, C: Encode<__W>> Encode<__W> for (A, B, C)

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Source§

impl<__W: Write, A: Encode<__W>, B: Encode<__W>, C: Encode<__W>, D: Encode<__W>> Encode<__W> for (A, B, C, D)

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Source§

impl<__W: Write, A: Encode<__W>, B: Encode<__W>, C: Encode<__W>, D: Encode<__W>, E: Encode<__W>> Encode<__W> for (A, B, C, D, E)

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Source§

impl<__W: Write, A: Encode<__W>, B: Encode<__W>, C: Encode<__W>, D: Encode<__W>, E: Encode<__W>, F: Encode<__W>> Encode<__W> for (A, B, C, D, E, F)

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Source§

impl<__W: Write, A: Encode<__W>, B: Encode<__W>, C: Encode<__W>, D: Encode<__W>, E: Encode<__W>, F: Encode<__W>, G: Encode<__W>> Encode<__W> for (A, B, C, D, E, F, G)

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Source§

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

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Source§

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

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Source§

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

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Source§

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

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Source§

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

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Source§

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

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Source§

impl<__W: Write, A: Encode<__W>, B: Encode<__W>, C: Encode<__W>, D: Encode<__W>, E: Encode<__W>, F: Encode<__W>, G: Encode<__W>, H: Encode<__W>, I: Encode<__W>, J: Encode<__W>, K: Encode<__W>, L: Encode<__W>, M: Encode<__W>, N: Encode<__W>> Encode<__W> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Source§

impl<__W: Write, A: Encode<__W>, B: Encode<__W>, C: Encode<__W>, D: Encode<__W>, E: Encode<__W>, F: Encode<__W>, G: Encode<__W>, H: Encode<__W>, I: Encode<__W>, J: Encode<__W>, K: Encode<__W>, L: Encode<__W>, M: Encode<__W>, N: Encode<__W>, O: Encode<__W>> Encode<__W> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Source§

impl<__W: Write, A: Encode<__W>, B: Encode<__W>, C: Encode<__W>, D: Encode<__W>, E: Encode<__W>, F: Encode<__W>, G: Encode<__W>, H: Encode<__W>, I: Encode<__W>, J: Encode<__W>, K: Encode<__W>, L: Encode<__W>, M: Encode<__W>, N: Encode<__W>, O: Encode<__W>, P: Encode<__W>> Encode<__W> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)

Source§

fn encode(&self, encoder: &mut Encoder<'_, __W>) -> EncodingResult<()>

Implementors§