Encode

Trait Encode 

Source
pub trait Encode {
    // Required method
    fn encode<E: Encoder>(&self, encoder: &mut E) -> Result<(), EncodeError>;
}
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: Encoder>(&self, encoder: &mut E) -> Result<(), EncodeError>

Encode a given type.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Encode for &CStr

Available on crate feature std only.
Source§

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

Source§

impl Encode for &Path

Available on crate feature std only.
Source§

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

Source§

impl Encode for IpAddr

Available on crate feature std only.
Source§

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

Source§

impl Encode for SocketAddr

Available on crate feature std only.
Source§

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

Source§

impl Encode for bool

Source§

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

Source§

impl Encode for char

Source§

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

Source§

impl Encode for f32

Source§

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

Source§

impl Encode for f64

Source§

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

Source§

impl Encode for i8

Source§

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

Source§

impl Encode for i16

Source§

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

Source§

impl Encode for i32

Source§

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

Source§

impl Encode for i64

Source§

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

Source§

impl Encode for i128

Source§

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

Source§

impl Encode for isize

Source§

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

Source§

impl Encode for str

Source§

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

Source§

impl Encode for u8

Source§

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

Source§

impl Encode for u16

Source§

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

Source§

impl Encode for u32

Source§

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

Source§

impl Encode for u64

Source§

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

Source§

impl Encode for u128

Source§

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

Source§

impl Encode for ()

Source§

impl Encode for usize

Source§

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

Source§

impl Encode for CString

Available on crate feature std only.
Source§

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

Source§

impl Encode for String

Available on crate feature alloc only.
Source§

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

Source§

impl Encode for Ipv4Addr

Available on crate feature std only.
Source§

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

Source§

impl Encode for Ipv6Addr

Available on crate feature std only.
Source§

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

Source§

impl Encode for SocketAddrV4

Available on crate feature std only.
Source§

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

Source§

impl Encode for SocketAddrV6

Available on crate feature std only.
Source§

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

Source§

impl Encode for AtomicBool

Available on target_has_atomic=8 only.
Source§

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

Source§

impl Encode for AtomicI8

Available on target_has_atomic=8 only.
Source§

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

Source§

impl Encode for AtomicI16

Available on target_has_atomic=16 only.
Source§

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

Source§

impl Encode for AtomicI32

Available on target_has_atomic=32 only.
Source§

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

Source§

impl Encode for AtomicI64

Available on target_has_atomic=64 only.
Source§

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

Source§

impl Encode for AtomicIsize

Available on target_has_atomic=ptr only.
Source§

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

Source§

impl Encode for AtomicU8

Available on target_has_atomic=8 only.
Source§

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

Source§

impl Encode for AtomicU16

Available on target_has_atomic=16 only.
Source§

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

Source§

impl Encode for AtomicU32

Available on target_has_atomic=32 only.
Source§

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

Source§

impl Encode for AtomicU64

Available on target_has_atomic=64 only.
Source§

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

Source§

impl Encode for AtomicUsize

Available on target_has_atomic=ptr only.
Source§

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

Source§

impl Encode for Duration

Source§

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

Source§

impl Encode for PathBuf

Available on crate feature std only.
Source§

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

Source§

impl Encode for SystemTime

Available on crate feature std only.
Source§

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

Source§

impl Encode for NonZeroI8

Source§

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

Source§

impl Encode for NonZeroI16

Source§

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

Source§

impl Encode for NonZeroI32

Source§

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

Source§

impl Encode for NonZeroI64

Source§

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

Source§

impl Encode for NonZeroI128

Source§

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

Source§

impl Encode for NonZeroIsize

Source§

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

Source§

impl Encode for NonZeroU8

Source§

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

Source§

impl Encode for NonZeroU16

Source§

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

Source§

impl Encode for NonZeroU32

Source§

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

Source§

impl Encode for NonZeroU64

Source§

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

Source§

impl Encode for NonZeroU128

Source§

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

Source§

impl Encode for NonZeroUsize

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError>

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: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError>

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: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError>

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: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError>

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: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError>

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: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError>

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: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError>

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: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError>

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: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError>

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: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError>

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: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError>

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: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError>

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: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError>

Source§

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

Available on crate feature alloc only.
Source§

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

Source§

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

Available on crate feature std only.
Source§

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

Source§

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

Available on crate feature alloc only.
Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Available on crate feature alloc only.
Source§

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

Source§

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

Available on crate feature alloc only.
Source§

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

Source§

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

Available on crate feature alloc only.
Source§

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

Source§

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

Available on crate feature alloc only.
Source§

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

Source§

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

Available on crate feature alloc only.
Source§

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

Source§

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

Available on crate feature alloc and target_has_atomic=ptr only.
Source§

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

Source§

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

Available on crate feature alloc only.
Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<T> Encode for PhantomData<T>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Available on crate feature std only.
Source§

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

Source§

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

Available on crate feature std only.
Source§

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

Source§

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

Available on crate feature std only.
Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Implementors§

Source§

impl<T> Encode for BorrowCompat<T>
where T: Serialize,

Available on crate feature serde only.
Source§

impl<T> Encode for Compat<T>
where T: Serialize,

Available on crate feature serde only.