toml_span/
lib.rs

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
20/// This crate's equivalent to [`serde::Deserialize`](https://docs.rs/serde/latest/serde/de/trait.Deserialize.html)
21pub trait Deserialize<'de>: Sized {
22    /// Given a mutable [`Value`], allows you to deserialize the type from it,
23    /// or accumulate 1 or more errors
24    fn deserialize(value: &mut Value<'de>) -> Result<Self, DeserError>;
25}
26
27/// This crate's equivalent to [`serde::DeserializeOwned`](https://docs.rs/serde/latest/serde/de/trait.DeserializeOwned.html)
28///
29/// This is useful if you want to use trait bounds
30pub trait DeserializeOwned: for<'de> Deserialize<'de> {}
31impl<T> DeserializeOwned for T where T: for<'de> Deserialize<'de> {}