Skip to main content

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(())
    }
}

§extern crate cu_bincode as bincode;

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".

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 ()

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 CString

Available on crate feature std 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 IpAddr

Available on crate feature std 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 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 Encode for PathBuf

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 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 String

Available on crate feature alloc 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 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 usize

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<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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> Encode for (A, B)
where A: Encode, B: Encode,

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<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<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<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>

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 Arc<T>
where T: Encode + ?Sized,

Available on target_has_atomic=ptr and 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 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 Bound<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 Cell<T>
where T: Encode + Copy,

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 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 Option<T>
where T: Encode,

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 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 RefCell<T>
where T: Encode + ?Sized,

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> 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 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 [T]
where T: Encode,

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.