use super::FieldDoc;
use super::definition_doc::non_empty;
use super::definitions::Definitions;
use crate::schema::Variant;
#[derive(Debug, Clone, PartialEq, crate::Schema)]
pub struct VariantDoc {
pub name: String,
pub doc: Option<String>,
pub fields: Option<Vec<FieldDoc>>,
}
impl VariantDoc {
pub(super) fn of(v: &Variant, tagged: bool, defs: &mut Definitions) -> VariantDoc {
VariantDoc {
name: v.name.to_owned(),
doc: non_empty(v.doc),
fields: tagged.then(|| FieldDoc::all(&v.fields, defs)),
}
}
}