From 73740e6dd0723113e22a26aa389e545085f58857 Mon Sep 17 00:00:00 2001 From: Melody Horn Date: Sat, 26 Mar 2022 20:13:37 -0600 Subject: refactor lib out of modules and test helper into a module --- src/lib.rs | 401 +++++++++++++++++++++++++++++-------------------------------- 1 file changed, 191 insertions(+), 210 deletions(-) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index 7f0966b..695c973 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,5 @@ #[cfg(feature = "knuffel")] -use knuffel::Decode; +use knuffel::{Decode, DecodeScalar}; pub trait BuildFromRef { fn ref_to(query: impl Into) -> Self; @@ -21,239 +21,220 @@ pub struct Document { pub nodes: Vec, } -pub use info::Info; - -pub mod info { - use super::*; - - #[derive(Debug, PartialEq, Eq, Default)] - #[cfg_attr(feature = "knuffel", derive(Decode))] - pub struct Info { - #[cfg_attr(feature = "knuffel", knuffel(children(name = "title")))] - pub title: Vec, - #[cfg_attr(feature = "knuffel", knuffel(children(name = "description")))] - pub description: Vec, - #[cfg_attr(feature = "knuffel", knuffel(children(name = "author")))] - pub authors: Vec, - #[cfg_attr(feature = "knuffel", knuffel(children(name = "contributor")))] - pub contributors: Vec, - #[cfg_attr(feature = "knuffel", knuffel(children(name = "link")))] - pub links: Vec, - #[cfg_attr(feature = "knuffel", knuffel(children(name = "license")))] - pub licenses: Vec, - #[cfg_attr(feature = "knuffel", knuffel(child))] - pub published: Option, - #[cfg_attr(feature = "knuffel", knuffel(child))] - pub modified: Option, - } - - #[derive(Debug, PartialEq, Eq)] - #[cfg_attr(feature = "knuffel", derive(Decode))] - pub struct TextValue { - #[cfg_attr(feature = "knuffel", knuffel(argument))] - pub text: String, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub lang: Option, - } - - #[derive(Debug, PartialEq, Eq)] - #[cfg_attr(feature = "knuffel", derive(Decode))] - pub struct Person { - #[cfg_attr(feature = "knuffel", knuffel(argument))] - pub name: String, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub orcid: Option, - #[cfg_attr(feature = "knuffel", knuffel(children(name = "link")))] - pub links: Vec, - } +#[derive(Debug, PartialEq, Eq, Default)] +#[cfg_attr(feature = "knuffel", derive(Decode))] +pub struct Info { + #[cfg_attr(feature = "knuffel", knuffel(children(name = "title")))] + pub title: Vec, + #[cfg_attr(feature = "knuffel", knuffel(children(name = "description")))] + pub description: Vec, + #[cfg_attr(feature = "knuffel", knuffel(children(name = "author")))] + pub authors: Vec, + #[cfg_attr(feature = "knuffel", knuffel(children(name = "contributor")))] + pub contributors: Vec, + #[cfg_attr(feature = "knuffel", knuffel(children(name = "link")))] + pub links: Vec, + #[cfg_attr(feature = "knuffel", knuffel(children(name = "license")))] + pub licenses: Vec, + #[cfg_attr(feature = "knuffel", knuffel(child))] + pub published: Option, + #[cfg_attr(feature = "knuffel", knuffel(child))] + pub modified: Option, +} - #[derive(Debug, PartialEq, Eq)] - #[cfg_attr(feature = "knuffel", derive(Decode))] - pub struct Link { - #[cfg_attr(feature = "knuffel", knuffel(argument))] - pub iri: String, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub rel: Option, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub lang: Option, - } +#[derive(Debug, PartialEq, Eq)] +#[cfg_attr(feature = "knuffel", derive(Decode))] +pub struct TextValue { + #[cfg_attr(feature = "knuffel", knuffel(argument))] + pub text: String, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub lang: Option, +} - #[derive(Debug, PartialEq, Eq)] - #[cfg_attr(feature = "knuffel", derive(Decode))] - pub struct License { - #[cfg_attr(feature = "knuffel", knuffel(argument))] - pub name: String, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub spdx: Option, - #[cfg_attr(feature = "knuffel", knuffel(children(name = "link")))] - pub link: Vec, - } +#[derive(Debug, PartialEq, Eq)] +#[cfg_attr(feature = "knuffel", derive(Decode))] +pub struct Person { + #[cfg_attr(feature = "knuffel", knuffel(argument))] + pub name: String, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub orcid: Option, + #[cfg_attr(feature = "knuffel", knuffel(children(name = "link")))] + pub links: Vec, +} - #[derive(Debug, PartialEq, Eq)] - #[cfg_attr(feature = "knuffel", derive(Decode))] - pub struct Date { - #[cfg_attr(feature = "knuffel", knuffel(argument))] - pub date: String, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub time: Option, - } +#[derive(Debug, PartialEq, Eq)] +#[cfg_attr(feature = "knuffel", derive(Decode))] +pub struct Link { + #[cfg_attr(feature = "knuffel", knuffel(argument))] + pub iri: String, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub rel: Option, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub lang: Option, } -pub use node::Node; +#[derive(Debug, PartialEq, Eq)] +#[cfg_attr(feature = "knuffel", derive(Decode))] +pub struct License { + #[cfg_attr(feature = "knuffel", knuffel(argument))] + pub name: String, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub spdx: Option, + #[cfg_attr(feature = "knuffel", knuffel(children(name = "link")))] + pub link: Vec, +} -pub mod node { - use super::*; +#[derive(Debug, PartialEq, Eq)] +#[cfg_attr(feature = "knuffel", derive(Decode))] +pub struct Date { + #[cfg_attr(feature = "knuffel", knuffel(argument))] + pub date: String, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub time: Option, +} - #[derive(Debug, PartialEq, Eq, Default)] - #[cfg_attr(feature = "knuffel", derive(Decode))] - pub struct Node { - #[cfg_attr(feature = "knuffel", knuffel(argument))] - pub name: Option, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub id: Option, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub description: Option, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub ref_: Option, - #[cfg_attr(feature = "knuffel", knuffel(child, unwrap(argument)))] - pub min: Option, - #[cfg_attr(feature = "knuffel", knuffel(child, unwrap(argument)))] - pub max: Option, - #[cfg_attr(feature = "knuffel", knuffel(children(name = "prop")))] - pub props: Vec, - #[cfg_attr(feature = "knuffel", knuffel(children(name = "value")))] - pub values: Vec, - #[cfg_attr(feature = "knuffel", knuffel(children(name = "children")))] - pub children: Vec, - } +#[derive(Debug, PartialEq, Eq, Default)] +#[cfg_attr(feature = "knuffel", derive(Decode))] +pub struct Node { + #[cfg_attr(feature = "knuffel", knuffel(argument))] + pub name: Option, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub id: Option, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub description: Option, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub ref_: Option, + #[cfg_attr(feature = "knuffel", knuffel(child, unwrap(argument)))] + pub min: Option, + #[cfg_attr(feature = "knuffel", knuffel(child, unwrap(argument)))] + pub max: Option, + #[cfg_attr(feature = "knuffel", knuffel(children(name = "prop")))] + pub props: Vec, + #[cfg_attr(feature = "knuffel", knuffel(children(name = "value")))] + pub values: Vec, + #[cfg_attr(feature = "knuffel", knuffel(children(name = "children")))] + pub children: Vec, +} - impl BuildFromRef for Node { - fn ref_to(query: impl Into) -> Self { - Self { - ref_: Some(query.into()), - ..Self::default() - } +impl BuildFromRef for Node { + fn ref_to(query: impl Into) -> Self { + Self { + ref_: Some(query.into()), + ..Self::default() } } +} - #[derive(Debug, PartialEq, Eq, Default)] - #[cfg_attr(feature = "knuffel", derive(Decode))] - pub struct Prop { - #[cfg_attr(feature = "knuffel", knuffel(argument))] - pub key: Option, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub id: Option, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub description: Option, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub ref_: Option, - #[cfg_attr(feature = "knuffel", knuffel(child))] - pub required: bool, - #[cfg_attr(feature = "knuffel", knuffel(children))] - pub validations: Vec, - } +#[derive(Debug, PartialEq, Eq, Default)] +#[cfg_attr(feature = "knuffel", derive(Decode))] +pub struct Prop { + #[cfg_attr(feature = "knuffel", knuffel(argument))] + pub key: Option, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub id: Option, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub description: Option, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub ref_: Option, + #[cfg_attr(feature = "knuffel", knuffel(child))] + pub required: bool, + #[cfg_attr(feature = "knuffel", knuffel(children))] + pub validations: Vec, +} - impl BuildFromRef for Prop { - fn ref_to(query: impl Into) -> Self { - Self { - ref_: Some(query.into()), - ..Self::default() - } +impl BuildFromRef for Prop { + fn ref_to(query: impl Into) -> Self { + Self { + ref_: Some(query.into()), + ..Self::default() } } +} - #[derive(Debug, PartialEq, Eq, Default)] - #[cfg_attr(feature = "knuffel", derive(Decode))] - pub struct Value { - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub id: Option, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub description: Option, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub ref_: Option, - #[cfg_attr(feature = "knuffel", knuffel(child, unwrap(argument)))] - pub min: Option, - #[cfg_attr(feature = "knuffel", knuffel(child, unwrap(argument)))] - pub max: Option, - #[cfg_attr(feature = "knuffel", knuffel(children))] - pub validations: Vec, - } +#[derive(Debug, PartialEq, Eq, Default)] +#[cfg_attr(feature = "knuffel", derive(Decode))] +pub struct Value { + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub id: Option, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub description: Option, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub ref_: Option, + #[cfg_attr(feature = "knuffel", knuffel(child, unwrap(argument)))] + pub min: Option, + #[cfg_attr(feature = "knuffel", knuffel(child, unwrap(argument)))] + pub max: Option, + #[cfg_attr(feature = "knuffel", knuffel(children))] + pub validations: Vec, +} - impl BuildFromRef for Value { - fn ref_to(query: impl Into) -> Self { - Self { - ref_: Some(query.into()), - ..Self::default() - } +impl BuildFromRef for Value { + fn ref_to(query: impl Into) -> Self { + Self { + ref_: Some(query.into()), + ..Self::default() } } +} - #[derive(Debug, PartialEq, Eq, Default)] - #[cfg_attr(feature = "knuffel", derive(Decode))] - pub struct Children { - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub id: Option, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub description: Option, - #[cfg_attr(feature = "knuffel", knuffel(property))] - pub ref_: Option, - #[cfg_attr(feature = "knuffel", knuffel(children(name = "node")))] - pub nodes: Vec, - } +#[derive(Debug, PartialEq, Eq, Default)] +#[cfg_attr(feature = "knuffel", derive(Decode))] +pub struct Children { + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub id: Option, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub description: Option, + #[cfg_attr(feature = "knuffel", knuffel(property))] + pub ref_: Option, + #[cfg_attr(feature = "knuffel", knuffel(children(name = "node")))] + pub nodes: Vec, +} - impl BuildFromRef for Children { - fn ref_to(query: impl Into) -> Self { - Self { - ref_: Some(query.into()), - ..Self::default() - } +impl BuildFromRef for Children { + fn ref_to(query: impl Into) -> Self { + Self { + ref_: Some(query.into()), + ..Self::default() } } +} - pub use validation::Validation; - - pub mod validation { - #[cfg(feature = "knuffel")] - use knuffel::{Decode, DecodeScalar}; - - #[derive(Debug, PartialEq, Eq)] - #[cfg_attr(feature = "knuffel", derive(Decode))] - pub enum Validation { - Type(#[cfg_attr(feature = "knuffel", knuffel(argument))] String), - Enum(#[cfg_attr(feature = "knuffel", knuffel(arguments))] Vec), - Pattern(#[cfg_attr(feature = "knuffel", knuffel(argument))] String), - Format(#[cfg_attr(feature = "knuffel", knuffel(arguments))] Vec), - } +#[derive(Debug, PartialEq, Eq)] +#[cfg_attr(feature = "knuffel", derive(Decode))] +pub enum Validation { + Type(#[cfg_attr(feature = "knuffel", knuffel(argument))] String), + Enum(#[cfg_attr(feature = "knuffel", knuffel(arguments))] Vec), + Pattern(#[cfg_attr(feature = "knuffel", knuffel(argument))] String), + Format(#[cfg_attr(feature = "knuffel", knuffel(arguments))] Vec), +} - #[derive(Debug, PartialEq, Eq)] - #[cfg_attr(feature = "knuffel", derive(DecodeScalar))] - pub enum Format { - DateTime, - Date, - Time, - Duration, - Decimal, - Currency, - Country2, - Country3, - CountrySubdivision, - Email, - IdnEmail, - Hostname, - IdnHostname, - Ipv4, - Ipv6, - Url, - UrlReference, - Irl, - IrlReference, - UrlTemplate, - Uuid, - Regex, - Base64, - KdlQuery, - } - } +#[derive(Debug, PartialEq, Eq)] +#[cfg_attr(feature = "knuffel", derive(DecodeScalar))] +pub enum Format { + DateTime, + Date, + Time, + Duration, + Decimal, + Currency, + Country2, + Country3, + CountrySubdivision, + Email, + IdnEmail, + Hostname, + IdnHostname, + Ipv4, + Ipv6, + Url, + UrlReference, + Irl, + IrlReference, + UrlTemplate, + Uuid, + Regex, + Base64, + KdlQuery, } mod schema_schema; -- cgit v1.2.3