Skip to main content

Serialize

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

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

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

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

Implementors§