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// }