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
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.
Simply calls visit_newtype_struct
.
Supported inputs:
- JS iterable (an object with
[Symbol.iterator]
). Supported outputs: - Any Rust sequence from Serde point of view (
Vec
,HashSet
, etc.)
Forwards to Self::deserialize_seq
.
Forwards to Self::deserialize_tuple
.
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)]
.
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)]
.
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... }
.
Ignores any value without calling to the JS side even to check its type.
We can’t take references to JS memory, so forwards to an owned Self::deserialize_byte_buf
.
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 anUint8Array
view first.Uint8Array
- copied to a newly createdVec<u8>
on the Rust side.
The error type that can be returned if some error occurs during deserialization. Read more
Require the Deserializer
to figure out how to drive the visitor based
on what data type is in the input. Read more
Hint that the Deserialize
type is expecting a unit value.
Hint that the Deserialize
type is expecting a unit struct with a
particular name. Read more
Hint that the Deserialize
type is expecting a bool
value.
Hint that the Deserialize
type is expecting a f32
value.
Hint that the Deserialize
type is expecting a f64
value.
Hint that the Deserialize
type is expecting the name of a struct
field or the discriminant of an enum variant. Read more
Hint that the Deserialize
type is expecting a string value and does
not benefit from taking ownership of buffered data owned by the
Deserializer
. Read more
Hint that the Deserialize
type is expecting a string value and would
benefit from taking ownership of buffered data owned by the
Deserializer
. Read more
Hint that the Deserialize
type is expecting an i8
value.
Hint that the Deserialize
type is expecting an i16
value.
Hint that the Deserialize
type is expecting an i32
value.
Hint that the Deserialize
type is expecting an i128
value. Read more
Hint that the Deserialize
type is expecting a u8
value.
Hint that the Deserialize
type is expecting a u16
value.
Hint that the Deserialize
type is expecting a u32
value.
Hint that the Deserialize
type is expecting an u128
value. Read more
Hint that the Deserialize
type is expecting an i64
value.
Hint that the Deserialize
type is expecting a u64
value.
Hint that the Deserialize
type is expecting an optional value. Read more
Determine whether Deserialize
implementations should expect to
deserialize their human-readable form. Read more
The error type that can be returned if some error occurs during
deserialization. Must match the error type of our EnumAccess
. Read more
Called when deserializing a variant with no values. Read more
Called when deserializing a variant with a single value. Read more
Called when deserializing a tuple-like variant. Read more
fn struct_variant<V: Visitor<'de>>(
self,
fields: &'static [&'static str],
visitor: V
) -> Result<V::Value, Error>
fn struct_variant<V: Visitor<'de>>(
self,
fields: &'static [&'static str],
visitor: V
) -> Result<V::Value, Error>
Called when deserializing a struct-like variant. Read more
Called when deserializing a variant with a single value. Read more