odict/format/json/definition.rs
1use serde::Serialize;
2use structural_convert::StructuralConvert;
3
4use crate::schema::Definition;
5
6use super::{ExampleJSON, NoteJSON};
7
8#[derive(Serialize, PartialEq, Eq, StructuralConvert)]
9#[convert(from(Definition))]
10pub struct DefinitionJSON {
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub id: Option<String>,
13
14 pub value: String,
15
16 #[serde(skip_serializing_if = "Vec::is_empty")]
17 pub examples: Vec<ExampleJSON>,
18
19 #[serde(skip_serializing_if = "Vec::is_empty")]
20 pub notes: Vec<NoteJSON>,
21}
22
23// impl From<Definition> for DefinitionJSON {
24// fn from(definition: Definition) -> Self {
25// let Definition {
26// id,
27// value,
28// examples,
29// notes,
30// } = definition;
31
32// Self {
33// id,
34// value,
35// examples: examples.into_iter().map(|e| ExampleJSON::from(e)).collect(),
36// notes: notes.into_iter().map(|n| NoteJSON::from(n)).collect(),
37// }
38// }
39// }