Sha256: e1b5007506e4f52eb73024c889b36f54694e9d955a737cd2e48a99657691fe21
Contents?: true
Size: 1.16 KB
Versions: 8
Compression:
Stored size: 1.16 KB
Contents
use serde::Deserialize; use serde::Serialize; #[derive(Debug, Serialize, Deserialize)] pub(crate) struct Recipe { pub(crate) name: String, pub(crate) description: Option<String>, #[serde(default)] pub(crate) modules: Vec<Modules>, #[serde(default)] pub(crate) packages: Vec<Packages>, } #[derive(Debug, Serialize, Deserialize)] pub(crate) struct Modules { pub(crate) name: String, pub(crate) version: Option<String>, } #[derive(Debug, Serialize, Deserialize)] pub(crate) struct Packages { pub(crate) name: String, pub(crate) version: Option<String>, } #[test] fn both_ends() { let recipe_works = toml::from_str::<Recipe>( r#" name = "testing" description = "example" modules = [] [[packages]] name = "base" "#, ) .unwrap(); toml::to_string(&recipe_works).unwrap(); let recipe_fails = toml::from_str::<Recipe>( r#" name = "testing" description = "example" packages = [] [[modules]] name = "base" "#, ) .unwrap(); let recipe_toml = toml::Table::try_from(recipe_fails).unwrap(); recipe_toml.to_string(); }
Version data entries
8 entries across 8 versions & 1 rubygems