[−][src]Struct serde_path_to_error::Deserializer
Deserializer adapter that records path to deserialization errors.
Example
use serde::Deserialize; use std::collections::BTreeMap as Map; #[derive(Deserialize)] struct Package { name: String, dependencies: Map<String, Dependency>, } #[derive(Deserialize)] struct Dependency { version: String, } fn main() { let j = r#"{ "name": "demo", "dependencies": { "serde": { "version": 1 } } }"#; // Some Deserializer. let jd = &mut serde_json::Deserializer::from_str(j); let mut track = serde_path_to_error::Track::new(); let pd = serde_path_to_error::Deserializer::new(jd, &mut track); match Package::deserialize(pd) { Ok(_) => panic!("expected a type error"), Err(_) => { let path = track.path().to_string(); assert_eq!(path, "dependencies.serde.version"); } } }
Implementations
impl<'a, 'b, D> Deserializer<'a, 'b, D>
[src]
Trait Implementations
impl<'a, 'b, 'de, D> Deserializer<'de> for Deserializer<'a, 'b, D> where
D: Deserializer<'de>,
[src]
D: Deserializer<'de>,
type Error = D::Error
The error type that can be returned if some error occurs during deserialization. Read more
pub fn deserialize_any<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_u8<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_u16<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_u32<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_u64<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_i8<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_i16<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_i32<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_u128<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_i128<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_f32<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_f64<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_char<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_str<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_string<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_option<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_unit<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_unit_struct<V>(
self,
name: &'static str,
visitor: V
) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
self,
name: &'static str,
visitor: V
) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
pub fn deserialize_newtype_struct<V>(
self,
name: &'static str,
visitor: V
) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
self,
name: &'static str,
visitor: V
) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
pub fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_tuple<V>(
self,
len: usize,
visitor: V
) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
self,
len: usize,
visitor: V
) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
pub fn deserialize_tuple_struct<V>(
self,
name: &'static str,
len: usize,
visitor: V
) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
self,
name: &'static str,
len: usize,
visitor: V
) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
pub fn deserialize_map<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn deserialize_struct<V>(
self,
name: &'static str,
fields: &'static [&'static str],
visitor: V
) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
self,
name: &'static str,
fields: &'static [&'static str],
visitor: V
) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
pub fn deserialize_enum<V>(
self,
name: &'static str,
variants: &'static [&'static str],
visitor: V
) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
self,
name: &'static str,
variants: &'static [&'static str],
visitor: V
) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
pub fn deserialize_ignored_any<V>(
self,
visitor: V
) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
self,
visitor: V
) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
pub fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value, D::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
pub fn is_human_readable(&self) -> bool
[src]
Auto Trait Implementations
impl<'a, 'b, D> RefUnwindSafe for Deserializer<'a, 'b, D> where
D: RefUnwindSafe,
[src]
D: RefUnwindSafe,
impl<'a, 'b, D> Send for Deserializer<'a, 'b, D> where
D: Send,
[src]
D: Send,
impl<'a, 'b, D> Sync for Deserializer<'a, 'b, D> where
D: Sync,
[src]
D: Sync,
impl<'a, 'b, D> Unpin for Deserializer<'a, 'b, D> where
D: Unpin,
[src]
D: Unpin,
impl<'a, 'b, D> !UnwindSafe for Deserializer<'a, 'b, D>
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,