json_utils/schema/
array_node.rs

1use std::collections::HashMap;
2
3use crate::json::JsValue;
4
5use super::SchemaNode;
6
7#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
8pub struct ArrayNode {
9    pub items: Box<SchemaNode>,
10
11    #[serde(flatten)]
12    pub extra: HashMap<String, JsValue>,
13}
14
15impl ArrayNode {
16    pub fn new<S: Into<SchemaNode>>(items: S) -> Self {
17        let items = Box::new(items.into());
18        Self {
19            items,
20            extra: hashmap! {},
21        }
22    }
23}
24
25impl_extra_props!(ArrayNode, extra);