Skip to main content

Encode

Trait Encode 

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

Encode trait for types that can be encoded to binary format

This trait should be implemented for all types that you want to encode. It can be automatically derived using #[derive(Encode)] with the derive feature.

§Example

use oxicode::Encode;

#[derive(Encode)]
struct Point {
    x: f32,
    y: f32,
}

§Manual Implementation

impl oxicode::Encode for Point {
    fn encode<E: oxicode::enc::Encoder>(
        &self,
        encoder: &mut E,
    ) -> Result<(), oxicode::Error> {
        self.x.encode(encoder)?;
        self.y.encode(encoder)?;
        Ok(())
    }
}

Required Methods§

Source

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

Encode this value into the given encoder

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

Available on crate feature alloc only.
Source§

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

Source§

impl Encode for &[u8]

Available on crate feature alloc only.
Source§

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

Source§

impl Encode for Ordering

Source§

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

Source§

impl Encode for Infallible

Source§

fn encode<E: Encoder>(&self, _encoder: &mut E) -> Result<(), Error>

Source§

impl Encode for IpAddr

Available on crate feature std only.
Source§

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

Source§

impl Encode for SocketAddr

Available on crate feature std only.
Source§

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

Source§

impl Encode for bool

Source§

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

Source§

impl Encode for char

Source§

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

Encode a char as UTF-8 (bincode compatible)

UTF-8 encoding uses variable 1-4 bytes:

  • 0x0000..0x007F: 1 byte
  • 0x0080..0x07FF: 2 bytes
  • 0x0800..0xFFFF: 3 bytes (excluding surrogates)
  • 0x10000..0x10FFFF: 4 bytes
Source§

impl Encode for f32

Source§

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

Source§

impl Encode for f64

Source§

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

Source§

impl Encode for i8

Source§

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

Source§

impl Encode for i16

Source§

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

Source§

impl Encode for i32

Source§

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

Source§

impl Encode for i64

Source§

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

Source§

impl Encode for i128

Source§

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

Source§

impl Encode for isize

Source§

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

Source§

impl Encode for str

Available on crate feature alloc only.
Source§

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

Source§

impl Encode for u8

Source§

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

Source§

impl Encode for u16

Source§

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

Source§

impl Encode for u32

Source§

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

Source§

impl Encode for u64

Source§

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

Source§

impl Encode for u128

Source§

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

Source§

impl Encode for ()

Source§

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

Source§

impl Encode for usize

Source§

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

Source§

impl Encode for Box<str>

Available on crate feature alloc only.
Source§

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

Source§

impl Encode for CString

Available on crate feature std only.
Source§

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

Source§

impl Encode for Rc<str>

Available on crate feature alloc only.
Source§

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

Source§

impl Encode for String

Available on crate feature alloc only.
Source§

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

Source§

impl Encode for Arc<str>

Available on crate feature alloc only.
Source§

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

Source§

impl Encode for CStr

Available on crate feature std only.
Source§

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

Source§

impl Encode for Ipv4Addr

Available on crate feature std only.
Source§

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

Source§

impl Encode for Ipv6Addr

Available on crate feature std only.
Source§

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

Source§

impl Encode for SocketAddrV4

Available on crate feature std only.
Source§

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

Source§

impl Encode for SocketAddrV6

Available on crate feature std only.
Source§

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

Source§

impl Encode for RangeFull

Source§

fn encode<E: Encoder>(&self, _encoder: &mut E) -> Result<(), Error>

Source§

impl Encode for Duration

Source§

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

Source§

impl Encode for OsStr

Available on crate feature std and non-target_family=wasm only.
Source§

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

Source§

impl Encode for OsString

Available on crate feature std and non-target_family=wasm only.
Source§

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

Source§

impl Encode for Path

Available on crate feature std only.
Source§

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

Source§

impl Encode for PathBuf

Available on crate feature std only.
Source§

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

Source§

impl Encode for SystemTime

Available on crate feature std only.
Source§

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

Source§

impl Encode for NonZeroI8

Source§

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

Source§

impl Encode for NonZeroI16

Source§

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

Source§

impl Encode for NonZeroI32

Source§

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

Source§

impl Encode for NonZeroI64

Source§

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

Source§

impl Encode for NonZeroI128

Source§

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

Source§

impl Encode for NonZeroIsize

Source§

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

Source§

impl Encode for NonZeroU8

Source§

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

Source§

impl Encode for NonZeroU16

Source§

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

Source§

impl Encode for NonZeroU32

Source§

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

Source§

impl Encode for NonZeroU64

Source§

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

Source§

impl Encode for NonZeroU128

Source§

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

Source§

impl Encode for NonZeroUsize

Source§

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

Source§

impl Encode for AtomicBool

Available on target_has_atomic=8 only.
Source§

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

Source§

impl Encode for AtomicI8

Available on target_has_atomic=8 only.
Source§

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

Source§

impl Encode for AtomicI16

Available on target_has_atomic=16 only.
Source§

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

Source§

impl Encode for AtomicI32

Available on target_has_atomic=32 only.
Source§

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

Source§

impl Encode for AtomicI64

Available on target_has_atomic=64 only.
Source§

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

Source§

impl Encode for AtomicIsize

Available on target_has_atomic=ptr only.
Source§

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

Source§

impl Encode for AtomicU8

Available on target_has_atomic=8 only.
Source§

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

Source§

impl Encode for AtomicU16

Available on target_has_atomic=16 only.
Source§

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

Source§

impl Encode for AtomicU32

Available on target_has_atomic=32 only.
Source§

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

Source§

impl Encode for AtomicU64

Available on target_has_atomic=64 only.
Source§

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

Source§

impl Encode for AtomicUsize

Available on target_has_atomic=ptr only.
Source§

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

Source§

impl<B: Encode, C: Encode> Encode for ControlFlow<B, C>

Source§

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

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

Source§

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

Available on crate feature alloc only.
Source§

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

Source§

impl<T0: Encode> Encode for (T0,)

Source§

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

Source§

impl<T0: Encode, T1: Encode> Encode for (T0, T1)

Source§

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

Source§

impl<T0: Encode, T1: Encode, T2: Encode> Encode for (T0, T1, T2)

Source§

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

Source§

impl<T0: Encode, T1: Encode, T2: Encode, T3: Encode> Encode for (T0, T1, T2, T3)

Source§

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

Source§

impl<T0: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode> Encode for (T0, T1, T2, T3, T4)

Source§

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

Source§

impl<T0: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode> Encode for (T0, T1, T2, T3, T4, T5)

Source§

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

Source§

impl<T0: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode> Encode for (T0, T1, T2, T3, T4, T5, T6)

Source§

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

Source§

impl<T0: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode> Encode for (T0, T1, T2, T3, T4, T5, T6, T7)

Source§

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

Source§

impl<T0: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode> Encode for (T0, T1, T2, T3, T4, T5, T6, T7, T8)

Source§

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

Source§

impl<T0: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode, T9: Encode> Encode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)

Source§

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

Source§

impl<T0: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode, T9: Encode, T10: Encode> Encode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

Source§

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

Source§

impl<T0: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode, T9: Encode, T10: Encode, T11: Encode> Encode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

Source§

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

Source§

impl<T0: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode, T9: Encode, T10: Encode, T11: Encode, T12: Encode> Encode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)

Source§

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

Source§

impl<T0: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode, T9: Encode, T10: Encode, T11: Encode, T12: Encode, T13: Encode> Encode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)

Source§

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

Source§

impl<T0: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode, T9: Encode, T10: Encode, T11: Encode, T12: Encode, T13: Encode, T14: Encode> Encode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)

Source§

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

Source§

impl<T0: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode, T9: Encode, T10: Encode, T11: Encode, T12: Encode, T13: Encode, T14: Encode, T15: Encode> Encode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)

Source§

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

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

Source§

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

Available on crate feature alloc only.
Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<T: Encode> Encode for [T]

Source§

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

Source§

impl<T: Encode> Encode for Box<[T]>

Available on crate feature alloc only.
Source§

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

Source§

impl<T: Encode> Encode for Box<T>

Available on crate feature alloc only.
Source§

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

Source§

impl<T: Encode> Encode for BinaryHeap<T>

Available on crate feature alloc only.
Source§

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

Source§

impl<T: Encode> Encode for BTreeSet<T>

Available on crate feature alloc only.
Source§

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

Source§

impl<T: Encode> Encode for LinkedList<T>

Available on crate feature alloc only.
Source§

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

Source§

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

Available on crate feature alloc only.
Source§

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

Source§

impl<T: Encode> Encode for Rc<[T]>

Available on crate feature alloc only.
Source§

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

Source§

impl<T: Encode> Encode for Rc<T>

Available on crate feature alloc only.
Source§

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

Source§

impl<T: Encode> Encode for Arc<[T]>

Available on crate feature alloc only.
Source§

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

Source§

impl<T: Encode> Encode for Arc<T>

Available on crate feature alloc only.
Source§

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

Source§

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

Available on crate feature alloc only.
Source§

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

Source§

impl<T: Encode> Encode for RefCell<T>

Source§

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

Source§

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

Source§

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

Source§

impl<T: Encode> Encode for ManuallyDrop<T>

Source§

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

Source§

impl<T: Encode> Encode for Saturating<T>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<T: Encode> Encode for RangeFrom<T>

Source§

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

Source§

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

Source§

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

Source§

impl<T: Encode> Encode for RangeTo<T>

Source§

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

Source§

impl<T: Encode> Encode for RangeToInclusive<T>

Source§

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

Source§

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

Available on crate feature std only.
Source§

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

Source§

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

Available on crate feature std only.
Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<T: ?Sized> Encode for PhantomData<T>

Source§

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

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.