Skip to main content

ToToml

Trait ToToml 

Source
pub trait ToToml {
    // Provided methods
    fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError> { ... }
    fn to_optional_toml<'a>(
        &'a self,
        arena: &'a Arena,
    ) -> Result<Option<Item<'a>>, ToTomlError> { ... }
}
Available on crate feature to-toml only.
Expand description

Converts a Rust type into a TOML Item tree.

#[derive(Toml)] with #[toml(ToToml)] generates the implementation (the derive defaults to FromToml without it). See the Toml derive macro for the full set of attributes and field options like skip_if and style.

For manual implementations, implement to_toml for values that are always present, or to_optional_toml for values that may be absent (returning Ok(None) to omit the field). Default implementations bridge between the two so only one needs to be provided.

The simplest entry point is to_string for default formatting, or Formatting for format preservation and customizing formatting defaults.

§Examples

use toml_spanner::Toml;

#[derive(Toml)]
#[toml(ToToml)]
struct Config {
    name: String,
    port: u16,
}

let config = Config { name: "app".into(), port: 8080 };
let output = toml_spanner::to_string(&config).unwrap();
assert!(output.contains("name = \"app\""));
assert!(output.contains("port = 8080"));

Provided Methods§

Source

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Produces a TOML Item representing this value.

Override when the value is always present. The default delegates to to_optional_toml and returns an error if None is produced.

Source

fn to_optional_toml<'a>( &'a self, arena: &'a Arena, ) -> Result<Option<Item<'a>>, ToTomlError>

Produces an optional TOML Item representing this value.

Override when the value may be absent (e.g. Option<T> returning None to omit the field). The default delegates to to_toml and wraps the result in Some.

Implementations on Foreign Types§

Source§

impl ToToml for bool

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for char

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for f32

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for f64

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for i8

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for i16

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for i32

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for i64

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for i128

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for str

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for u8

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for u16

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for u32

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for u64

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for u128

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for String

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for Path

Source§

fn to_toml<'a>(&'a self, _: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl ToToml for PathBuf

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<'b, T: ToToml + Clone> ToToml for Cow<'b, T>

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<A: ToToml> ToToml for (A,)

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<A: ToToml, B: ToToml> ToToml for (A, B)

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<A: ToToml, B: ToToml, C: ToToml> ToToml for (A, B, C)

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<K: ToToml> ToToml for BTreeSet<K>

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<K: ToToml, H> ToToml for HashSet<K, H>

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<K: ToToml, V: ToToml> ToToml for BTreeMap<K, V>

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<K: ToToml, V: ToToml, H> ToToml for HashMap<K, V, H>

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<T: ToToml + ?Sized> ToToml for &T

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<T: ToToml + ?Sized> ToToml for &mut T

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<T: ToToml> ToToml for Option<T>

Source§

fn to_optional_toml<'a>( &'a self, arena: &'a Arena, ) -> Result<Option<Item<'a>>, ToTomlError>

Source§

impl<T: ToToml> ToToml for [T]

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<T: ToToml> ToToml for Box<T>

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<T: ToToml> ToToml for Rc<T>

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<T: ToToml> ToToml for Arc<T>

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<T: ToToml> ToToml for Vec<T>

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Source§

impl<const N: usize, T: ToToml> ToToml for [T; N]

Source§

fn to_toml<'a>(&'a self, arena: &'a Arena) -> Result<Item<'a>, ToTomlError>

Implementors§