#[derive(Debug, Clone)]
pub struct Association {
pub field: String,
pub factory_name: String,
pub required: bool,
pub default_traits: Vec<String>,
}
impl Association {
pub fn required(field: &str, factory_name: &str) -> Self {
Self {
field: field.to_string(),
factory_name: factory_name.to_string(),
required: true,
default_traits: Vec::new(),
}
}
pub fn optional(field: &str, factory_name: &str) -> Self {
Self {
field: field.to_string(),
factory_name: factory_name.to_string(),
required: false,
default_traits: Vec::new(),
}
}
pub fn with_traits(mut self, traits: &[&str]) -> Self {
self.default_traits = traits.iter().map(|s| s.to_string()).collect();
self
}
}