Skip to main content

Deserialize

Trait Deserialize 

Source
pub trait Deserialize<'de>: Sized {
    // Required method
    fn deserialize(item: &mut Item<'de>) -> Result<Self, Error>;
}
Expand description

Converts a parsed TOML Item into a typed Rust value.

Implement this trait on your own types to extract them from a parsed TOML document via Table::required and Table::optional.

Built-in implementations are provided for common types: bool, integer types (i8 through i64, u8 through u64, usize), floating-point types (f32, f64), String, Cow<'de, str>, [Str], Vec<T>, and Spanned<T>.

§Examples

use toml_spanner::{Deserialize, Error, Item};

struct Endpoint {
    host: String,
    port: u16,
}

impl<'de> Deserialize<'de> for Endpoint {
    fn deserialize(item: &mut Item<'de>) -> Result<Self, Error> {
        let table = item.expect_table()?;
        Ok(Endpoint {
            host: table.required("host")?,
            port: table.required("port")?,
        })
    }
}

Required Methods§

Source

fn deserialize(item: &mut Item<'de>) -> Result<Self, Error>

Deserializes Self from the given Item, returning an error on failure.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'de> Deserialize<'de> for &'de str

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for Cow<'de, str>

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for bool

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for f32

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for f64

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for i8

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for i16

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for i32

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for i64

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for isize

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for u8

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for u16

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for u32

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for u64

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for usize

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de> Deserialize<'de> for String

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Source§

impl<'de, T> Deserialize<'de> for Vec<T>
where T: Deserialize<'de>,

Source§

fn deserialize(value: &mut Item<'de>) -> Result<Self, Error>

Implementors§

Source§

impl<'de, T> Deserialize<'de> for Spanned<T>
where T: Deserialize<'de>,