| Crates.io | toml-input |
| lib.rs | toml-input |
| version | 0.1.4 |
| created_at | 2025-04-30 18:02:56.81279+00 |
| updated_at | 2025-05-20 09:43:24.10431+00 |
| description | # A library to generate toml text with clear options and comments |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1655265 |
| size | 57,086 |
rust code:
use serde::{Deserialize, Serialize};
use strum_macros::{AsRefStr, EnumIter};
use toml_input::TomlInput;
/// comment `Test`
#[derive(Debug, TomlInput, Serialize, Deserialize, Default)]
struct Test {
/// comment `a`
a: i32,
/// comment `b`
b: TestEnum,
}
/// comment `TestEnum`
#[allow(dead_code)]
#[derive(Debug, EnumIter, AsRefStr, TomlInput, Serialize, Deserialize)]
#[derive(Default)]
enum TestEnum {
/// comment `A`
A,
/// comment `B`
#[default]
B,
}
let text = Test::schema_to_string().unwrap();
toml text:
# comment `Test`
# comment `a`
a = 0
# comment `A`
#!b = "A"
# comment `B`
b = "B"
rust code:
/// comment `Test`
#[derive(Debug, Clone, TomlInput, Serialize, Deserialize, Default, PartialEq)]
struct Test {
/// comment `a`
a: i32,
/// comment `b`
#[toml_input(enum_style = "fold")]
b: TestEnum,
}
/// comment `TestEnum`
#[derive(Debug, Clone, EnumIter, AsRefStr, TomlInput, Serialize, Deserialize, PartialEq)]
#[allow(dead_code)]
#[derive(Default)]
enum TestEnum {
/// comment `A`
A,
/// comment `B`
#[default]
B,
}
let test = Test {
a: 0,
b: TestEnum::B,
};
let text = test.into_string().unwrap();
toml text:
# comment `Test`
# comment `a`
a = 0
# b = "A" | "B"
# comment `B`
b = "B"
rust code:
/// comment `Test`
#[derive(Debug, Clone, TomlInput, Serialize, Deserialize, PartialEq, Default)]
struct Test {
/// comment `a`
a: i32,
/// comment `b`
b: TestEnum,
}
/// comment `TestEnum`
#[derive(Debug, Clone, EnumIter, AsRefStr, TomlInput, Serialize, Deserialize, PartialEq)]
#[allow(dead_code)]
enum TestEnum {
/// comment `A`
A,
/// comment `B`
B(String),
}
impl Default for TestEnum {
fn default() -> Self {
TestEnum::B(String::new())
}
}
let test = Test {
a: 0,
b: TestEnum::B("test B".to_string()),
};
let text = test.into_string().unwrap();
toml text:
# comment `Test`
# comment `a`
a = 0
# comment `A`
#!b = "A"
# comment `B`
b = { B = "test B" }