The namegen5 website.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

60 lines
1.3 KiB

use std::collections::HashMap;
use namegen::FormattingRule;
#[derive(Deserialize)]
pub struct Manifest {
pub name: String,
#[serde(default)]
pub metadata: HashMap<String, String>,
pub sources: Vec<SourceManifest>,
pub formats: Vec<FormatManifest>,
pub parts: Vec<PartManifest>,
}
#[derive(Deserialize)]
pub struct PartManifest {
pub name: String,
pub kind: String,
#[serde(default)]
pub initial_tokens: Vec<String>,
#[serde(default)]
pub rules: PartManifestRule,
pub source: String,
#[serde(default)]
pub format_rules: Vec<FormattingRule>,
}
#[derive(Deserialize, Default)]
pub struct PartManifestRule {
#[serde(default)]
pub rlf: bool,
#[serde(default)]
pub ral: bool,
#[serde(default)]
pub lrs: bool,
#[serde(default)]
pub lrm: bool,
#[serde(default)]
pub lre: bool,
}
#[derive(Deserialize)]
pub struct SourceManifest {
pub files: String,
pub kind: String,
pub targets: Vec<String>,
#[serde(default)]
pub to_lower: bool,
#[serde(default)]
pub empty_token: Option<String>,
#[serde(default)]
pub separator: Option<String>,
#[serde(default)]
pub comment_prefix: Option<String>,
}
#[derive(Deserialize)]
pub struct FormatManifest {
pub name: String,
pub template: String,
}