Skip to main content

Encode

Trait Encode 

Source
pub trait Encode {
    // Required method
    fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
       where E: Encoder;
}
Expand description

Any source that can be encoded. This trait should be implemented for all types that you want to be able to use with any of the encode_with methods.

This trait will be automatically implemented if you enable the derive feature and add #[derive(bincode::Encode)] to your trait.

§Implementing this trait manually

If you want to implement this trait for your type, the easiest way is to add a #[derive(bincode::Encode)], build and check your target/generated/bincode/ folder. This should generate a <Struct name>_Encode.rs file.

For this struct:

struct Entity {
    pub x: f32,
    pub y: f32,
}

It will look something like:

impl bincode::Encode for Entity {
    fn encode<E: bincode::enc::Encoder>(
        &self,
        encoder: &mut E,
    ) -> core::result::Result<(), bincode::error::EncodeError> {
        bincode::Encode::encode(&self.x, encoder)?;
        bincode::Encode::encode(&self.y, encoder)?;
        Ok(())
    }
}

From here you can add/remove fields, or add custom logic.

Required Methods§

Source

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Encode a given type.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl Encode for &CStr

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for &Path

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for ()

Source§

fn encode<E>(&self, _: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for Atomic<bool>

Available on target_has_atomic=8 only.
Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for Atomic<i8>

Available on target_has_atomic=8 only.
Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for Atomic<i16>

Available on target_has_atomic=16 only.
Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for Atomic<i32>

Available on target_has_atomic=32 only.
Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for Atomic<i64>

Available on target_has_atomic=64 only.
Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for Atomic<isize>

Available on target_has_atomic=ptr only.
Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for Atomic<u8>

Available on target_has_atomic=8 only.
Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for Atomic<u16>

Available on target_has_atomic=16 only.
Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for Atomic<u32>

Available on target_has_atomic=32 only.
Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for Atomic<u64>

Available on target_has_atomic=64 only.
Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for Atomic<usize>

Available on target_has_atomic=ptr only.
Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for CString

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for Duration

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for IpAddr

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for Ipv4Addr

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for Ipv6Addr

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for NonZero<i8>

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for NonZero<i16>

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for NonZero<i32>

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for NonZero<i64>

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for NonZero<i128>

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for NonZero<isize>

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for NonZero<u8>

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for NonZero<u16>

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for NonZero<u32>

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for NonZero<u64>

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for NonZero<u128>

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for NonZero<usize>

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for PathBuf

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for SocketAddr

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for SocketAddrV4

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for SocketAddrV6

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for String

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for SystemTime

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for bool

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for char

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for f32

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for f64

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for i8

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for i16

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for i32

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for i64

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for i128

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for isize

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for str

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for u8

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for u16

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for u32

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for u64

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for u128

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl Encode for usize

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

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

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

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

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

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

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

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

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

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

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

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

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

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

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

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

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

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

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

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

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

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

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

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

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

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

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

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

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

impl<A, B> Encode for (A, B)
where A: Encode, B: Encode,

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

impl<A> Encode for (A,)
where A: Encode,

Source§

fn encode<_E>(&self, encoder: &mut _E) -> Result<(), EncodeError>
where _E: Encoder,

Source§

impl<K, V, S> Encode for HashMap<K, V, S>
where K: Encode, V: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<K, V> Encode for BTreeMap<K, V>
where K: Encode + Ord, V: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T, S> Encode for HashSet<T, S>
where T: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T, U> Encode for Result<T, U>
where T: Encode, U: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

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

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

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

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for Arc<T>
where T: Encode + ?Sized,

Available on target_has_atomic=ptr only.
Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for BTreeSet<T>
where T: Encode + Ord,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for BinaryHeap<T>
where T: Encode + Ord,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for Bound<T>
where T: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for Box<T>
where T: Encode + ?Sized,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for Cell<T>
where T: Encode + Copy,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for Cow<'_, T>
where T: ToOwned + ?Sized, &'a T: for<'a> Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for Mutex<T>
where T: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for Option<T>
where T: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for PhantomData<T>

Source§

fn encode<E>(&self, _: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for Range<T>
where T: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for RangeInclusive<T>
where T: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for Rc<T>
where T: Encode + ?Sized,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for RefCell<T>
where T: Encode + ?Sized,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for Reverse<T>
where T: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for RwLock<T>
where T: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for Vec<T>
where T: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for VecDeque<T>
where T: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for Wrapping<T>
where T: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Source§

impl<T> Encode for [T]
where T: Encode,

Source§

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Implementors§