1#![cfg_attr(docsrs, feature(doc_cfg))]
2#![doc = include_str!("../README.md")]
3#![deny(missing_docs)]
4
5pub mod de;
6pub mod de_helpers;
7mod error;
8pub mod span;
9pub mod tokens;
10pub mod value;
11
12pub use de::parse;
13pub use error::{DeserError, Error, ErrorKind};
14pub use span::{Span, Spanned};
15pub use value::Value;
16
17#[cfg(feature = "serde")]
18pub mod impl_serde;
19
20pub trait Deserialize<'de>: Sized {
22 fn deserialize(value: &mut Value<'de>) -> Result<Self, DeserError>;
25}
26
27pub trait DeserializeOwned: for<'de> Deserialize<'de> {}
31impl<T> DeserializeOwned for T where T: for<'de> Deserialize<'de> {}