Struct workflow_wasm::serde::Deserializer
source · pub struct Deserializer { /* private fields */ }Expand description
A newtype that allows using any JsValue as a serde::Deserializer.
Trait Implementations§
source§impl<'de> Deserializer<'de> for Deserializer
impl<'de> Deserializer<'de> for Deserializer
source§fn deserialize_char<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_char<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Converts a JavaScript string to a Rust char.
By default we don’t perform detection of single chars because it’s pretty complicated,
but if we get a hint that they’re expected, this methods allows to avoid heap allocations
of an intermediate String by directly converting numeric codepoints instead.
source§fn deserialize_newtype_struct<V>(
self,
_name: &'static str,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_newtype_struct<V>( self, _name: &'static str, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Simply calls visit_newtype_struct.
source§fn deserialize_seq<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_seq<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Supported inputs:
- JS iterable (an object with
[Symbol.iterator]). Supported outputs: - Any Rust sequence from Serde point of view (
Vec,HashSet, etc.)
source§fn deserialize_tuple<V>(
self,
_len: usize,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_tuple<V>( self, _len: usize, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Forwards to Self::deserialize_seq.
source§fn deserialize_tuple_struct<V>(
self,
name: &'static str,
len: usize,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_tuple_struct<V>( self, name: &'static str, len: usize, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Forwards to Self::deserialize_tuple.
source§fn deserialize_map<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_map<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Supported inputs:
- A JS iterable that is expected to return
[key, value]pairs. - A JS object, which will be iterated using
Object.entries. Supported outputs: - A Rust key-value map (
HashMap,BTreeMap, etc.). - A typed Rust structure with
#[derive(Deserialize)].
source§fn deserialize_struct<V>(
self,
_name: &'static str,
fields: &'static [&'static str],
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_struct<V>( self, _name: &'static str, fields: &'static [&'static str], visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Supported inputs:
- A plain JS object. Supported outputs:
- A typed Rust structure with
#[derive(Deserialize)].
source§fn deserialize_enum<V>(
self,
_name: &'static str,
_variants: &'static [&'static str],
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_enum<V>( self, _name: &'static str, _variants: &'static [&'static str], visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Here we try to be compatible with serde-json, which means supporting:
"Variant"- gets converted to a unit variantMyEnum::Variant{ Variant: ...payload... }- gets converted to aMyEnum::Variant { ...payload... }.
source§fn deserialize_ignored_any<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_ignored_any<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Ignores any value without calling to the JS side even to check its type.
source§fn deserialize_bytes<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_bytes<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
We can’t take references to JS memory, so forwards to an owned Self::deserialize_byte_buf.
source§fn deserialize_byte_buf<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_byte_buf<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Serde expects visit_byte_buf to be called only in response to an explicit deserialize_bytes,
so we provide conversions here.
Supported inputs:
ArrayBuffer- converted to anUint8Arrayview first.Uint8Array,Array- copied to a newly createdVec<u8>on the Rust side.
source§fn deserialize_any<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_any<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserializer to figure out how to drive the visitor based
on what data type is in the input. Read moresource§fn deserialize_unit<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_unit<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting a unit value.source§fn deserialize_unit_struct<V>(
self,
_name: &'static str,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_unit_struct<V>( self, _name: &'static str, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting a unit struct with a
particular name.source§fn deserialize_bool<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_bool<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting a bool value.source§fn deserialize_f32<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_f32<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting a f32 value.source§fn deserialize_f64<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_f64<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting a f64 value.source§fn deserialize_identifier<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_identifier<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting the name of a struct
field or the discriminant of an enum variant.source§fn deserialize_str<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_str<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting a string value and does
not benefit from taking ownership of buffered data owned by the
Deserializer. Read moresource§fn deserialize_string<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_string<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting a string value and would
benefit from taking ownership of buffered data owned by the
Deserializer. Read moresource§fn deserialize_i8<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_i8<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting an i8 value.source§fn deserialize_i16<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_i16<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting an i16 value.source§fn deserialize_i32<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_i32<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting an i32 value.source§fn deserialize_u8<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_u8<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting a u8 value.source§fn deserialize_u16<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_u16<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting a u16 value.source§fn deserialize_u32<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_u32<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting a u32 value.source§fn deserialize_i64<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_i64<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting an i64 value.source§fn deserialize_u64<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_u64<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting a u64 value.source§fn deserialize_i128<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_i128<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
source§fn deserialize_u128<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_u128<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
source§fn deserialize_option<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Error>where
V: Visitor<'de>,
fn deserialize_option<V>( self, visitor: V ) -> Result<<V as Visitor<'de>>::Value, Error>where V: Visitor<'de>,
Deserialize type is expecting an optional value. Read moresource§fn is_human_readable(&self) -> bool
fn is_human_readable(&self) -> bool
Deserialize implementations should expect to
deserialize their human-readable form. Read moresource§impl From<JsValue> for Deserializer
impl From<JsValue> for Deserializer
source§fn from(value: JsValue) -> Deserializer
fn from(value: JsValue) -> Deserializer
source§impl<'de> IntoDeserializer<'de, Error> for Deserializer
impl<'de> IntoDeserializer<'de, Error> for Deserializer
§type Deserializer = Deserializer
type Deserializer = Deserializer
source§fn into_deserializer(
self
) -> <Deserializer as IntoDeserializer<'de, Error>>::Deserializer
fn into_deserializer( self ) -> <Deserializer as IntoDeserializer<'de, Error>>::Deserializer
source§impl<'de> VariantAccess<'de> for Deserializer
impl<'de> VariantAccess<'de> for Deserializer
§type Error = Error
type Error = Error
EnumAccess.