Trait Deserialize

Source
pub trait Deserialize
where Self: Sized,
{ type Error: Error + Send + Sync + 'static; // Required method fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>; }
Expand description

Deserialize trait for Restate services.

Default implementations are provided for primitives, and you can use the wrapper type Json to serialize using serde_json.

This looks similar to serde::Deserialize, but allows to plug-in non-serde serialization formats (e.g. like Protobuf using prost).

Required Associated Types§

Source

type Error: Error + Send + Sync + 'static

Required Methods§

Source

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::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 Deserialize for bool

Source§

type Error = Error

Source§

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for f32

Source§

type Error = Error

Source§

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for f64

Source§

type Error = Error

Source§

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for i8

Source§

type Error = Error

Source§

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for i16

Source§

type Error = Error

Source§

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for i32

Source§

type Error = Error

Source§

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for i64

Source§

type Error = Error

Source§

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for i128

Source§

type Error = Error

Source§

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for u8

Source§

type Error = Error

Source§

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for u16

Source§

type Error = Error

Source§

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for u32

Source§

type Error = Error

Source§

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for u64

Source§

type Error = Error

Source§

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for u128

Source§

type Error = Error

Source§

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for ()

Source§

type Error = Infallible

Source§

fn deserialize(_: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for String

Source§

type Error = Error

Source§

fn deserialize(bytes: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for Vec<u8>

Source§

type Error = Infallible

Source§

fn deserialize(b: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl Deserialize for Bytes

Source§

type Error = Infallible

Source§

fn deserialize(b: &mut Bytes) -> Result<Self, Self::Error>

Source§

impl<T: Deserialize> Deserialize for Option<T>

Source§

type Error = <T as Deserialize>::Error

Source§

fn deserialize(b: &mut Bytes) -> Result<Self, Self::Error>

Implementors§

Source§

impl<T> Deserialize for Json<T>
where for<'a> T: Deserialize<'a>,