Trait Serialize

Source
pub trait Serialize: Sized {
    // Required methods
    fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>;
    fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>;
}
Expand description

An item that can be Serialized into bytes.

§Examples

// `S` parameter is needed in all cases
assert_eq!(u32::from_bytes::<u8>(&mut [3,0,0,0].as_slice(), Ok(3u32)));

// Passing more bytes than needed is not an error
assert_eq!(bool::from_bytes::<u8>(&mut [1,0,0,0,0].as_slice()), Ok(true));

assert_eq!([char; 4]::from_bytes::<u8>(&mut [65,0,0,0, 66,0,0,0, 67,0,0,0, 68,0,0,0].as_slice()), ['A', 'B', 'C', 'D']);
assert_eq!(String::from_bytes::<u8>(&mut [4, 65,66,67,68].as_slice()), String::from("ABCD"));

Required Methods§

Source

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

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

Source§

fn from_bytes<S: Size>(_b: &mut &[u8]) -> Result<Self, Error>

This function will panic. Make sure to convert to an owned String instead

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for bool

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for char

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for f32

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for f64

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for i8

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for i16

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for i32

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for i64

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for i128

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for isize

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for u8

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for u16

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for u32

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for u64

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for u128

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for ()

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for usize

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl Serialize for String

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl<A: Serialize> Serialize for (A,)

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl<A: Serialize, B: Serialize> Serialize for (A, B)

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl<A: Serialize, B: Serialize, C: Serialize> Serialize for (A, B, C)

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

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

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

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

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

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

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

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

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

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

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

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

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

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

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

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

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl<B: Serialize> Serialize for Option<B>

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl<B: Serialize> Serialize for Box<[B]>

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl<B: Serialize> Serialize for Box<B>

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl<B: Serialize> Serialize for Vec<B>

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Source§

impl<B: Serialize, const N: usize> Serialize for [B; N]

Source§

fn from_bytes<S: Size>(b: &mut &[u8]) -> Result<Self, Error>

Source§

fn into_bytes<S: Size>(&self, b: &mut Vec<u8>) -> Result<(), Error>

Implementors§