Struct serde_wasm_bindgen::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: Visitor<'de>>(
self,
visitor: V
) -> Result<V::Value, Error>
fn deserialize_char<V: Visitor<'de>>( self, visitor: V ) -> Result<V::Value, Error>
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: Visitor<'de>>(
self,
_name: &'static str,
visitor: V
) -> Result<V::Value, Error>
fn deserialize_newtype_struct<V: Visitor<'de>>( self, _name: &'static str, visitor: V ) -> Result<V::Value, Error>
Simply calls visit_newtype_struct.
source§fn deserialize_seq<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
fn deserialize_seq<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
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: Visitor<'de>>(
self,
_len: usize,
visitor: V
) -> Result<V::Value, Error>
fn deserialize_tuple<V: Visitor<'de>>( self, _len: usize, visitor: V ) -> Result<V::Value, Error>
Forwards to Self::deserialize_seq.
source§fn deserialize_tuple_struct<V: Visitor<'de>>(
self,
_name: &'static str,
len: usize,
visitor: V
) -> Result<V::Value, Error>
fn deserialize_tuple_struct<V: Visitor<'de>>( self, _name: &'static str, len: usize, visitor: V ) -> Result<V::Value, Error>
Forwards to Self::deserialize_tuple.
source§fn deserialize_map<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
fn deserialize_map<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
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: Visitor<'de>>(
self,
_name: &'static str,
fields: &'static [&'static str],
visitor: V
) -> Result<V::Value, Error>
fn deserialize_struct<V: Visitor<'de>>( self, _name: &'static str, fields: &'static [&'static str], visitor: V ) -> Result<V::Value, Error>
Supported inputs:
- A plain JS object. Supported outputs:
- A typed Rust structure with
#[derive(Deserialize)].
source§fn deserialize_enum<V: Visitor<'de>>(
self,
_name: &'static str,
_variants: &'static [&'static str],
visitor: V
) -> Result<V::Value, Error>
fn deserialize_enum<V: Visitor<'de>>( self, _name: &'static str, _variants: &'static [&'static str], visitor: V ) -> Result<V::Value, Error>
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: Visitor<'de>>(
self,
visitor: V
) -> Result<V::Value, Error>
fn deserialize_ignored_any<V: Visitor<'de>>( self, visitor: V ) -> Result<V::Value, Error>
Ignores any value without calling to the JS side even to check its type.
source§fn deserialize_bytes<V: Visitor<'de>>(
self,
visitor: V
) -> Result<V::Value, Error>
fn deserialize_bytes<V: Visitor<'de>>( self, visitor: V ) -> Result<V::Value, Error>
We can’t take references to JS memory, so forwards to an owned Self::deserialize_byte_buf.
source§fn deserialize_byte_buf<V: Visitor<'de>>(
self,
visitor: V
) -> Result<V::Value, Error>
fn deserialize_byte_buf<V: Visitor<'de>>( self, visitor: V ) -> Result<V::Value, Error>
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: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
fn deserialize_any<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
Deserializer to figure out how to drive the visitor based
on what data type is in the input. Read moresource§fn deserialize_unit<V: Visitor<'de>>(
self,
visitor: V
) -> Result<V::Value, Error>
fn deserialize_unit<V: Visitor<'de>>( self, visitor: V ) -> Result<V::Value, Error>
Deserialize type is expecting a unit value.source§fn deserialize_unit_struct<V: Visitor<'de>>(
self,
_name: &'static str,
visitor: V
) -> Result<V::Value, Error>
fn deserialize_unit_struct<V: Visitor<'de>>( self, _name: &'static str, visitor: V ) -> Result<V::Value, Error>
Deserialize type is expecting a unit struct with a
particular name.source§fn deserialize_bool<V: Visitor<'de>>(
self,
visitor: V
) -> Result<V::Value, Error>
fn deserialize_bool<V: Visitor<'de>>( self, visitor: V ) -> Result<V::Value, Error>
Deserialize type is expecting a bool value.source§fn deserialize_f32<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
fn deserialize_f32<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
Deserialize type is expecting a f32 value.source§fn deserialize_f64<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
fn deserialize_f64<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
Deserialize type is expecting a f64 value.source§fn deserialize_identifier<V: Visitor<'de>>(
self,
visitor: V
) -> Result<V::Value, Error>
fn deserialize_identifier<V: Visitor<'de>>( self, visitor: V ) -> Result<V::Value, Error>
Deserialize type is expecting the name of a struct
field or the discriminant of an enum variant.source§fn deserialize_str<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
fn deserialize_str<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
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: Visitor<'de>>(
self,
visitor: V
) -> Result<V::Value, Error>
fn deserialize_string<V: Visitor<'de>>( self, visitor: V ) -> Result<V::Value, Error>
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: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
fn deserialize_i8<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
Deserialize type is expecting an i8 value.source§fn deserialize_i16<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
fn deserialize_i16<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
Deserialize type is expecting an i16 value.source§fn deserialize_i32<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
fn deserialize_i32<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
Deserialize type is expecting an i32 value.source§fn deserialize_u8<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
fn deserialize_u8<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
Deserialize type is expecting a u8 value.source§fn deserialize_u16<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
fn deserialize_u16<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
Deserialize type is expecting a u16 value.source§fn deserialize_u32<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
fn deserialize_u32<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
Deserialize type is expecting a u32 value.source§fn deserialize_i64<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
fn deserialize_i64<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
Deserialize type is expecting an i64 value.source§fn deserialize_u64<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
fn deserialize_u64<V: Visitor<'de>>(self, visitor: V) -> Result<V::Value, Error>
Deserialize type is expecting a u64 value.source§fn deserialize_option<V: Visitor<'de>>(
self,
visitor: V
) -> Result<V::Value, Error>
fn deserialize_option<V: Visitor<'de>>( self, visitor: V ) -> Result<V::Value, Error>
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§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) -> Self::Deserializer
fn into_deserializer(self) -> Self::Deserializer
source§impl<'de> VariantAccess<'de> for Deserializer
impl<'de> VariantAccess<'de> for Deserializer
§type Error = Error
type Error = Error
EnumAccess.