json_utils/schema/
array_node.rs1use 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);