icydb_schema/node/
map.rs

1use crate::prelude::*;
2
3///
4/// Map
5///
6
7#[derive(Clone, Debug, Serialize)]
8pub struct Map {
9    pub def: Def,
10    pub key: Item,
11    pub value: Value,
12    pub ty: Type,
13}
14
15impl MacroNode for Map {
16    fn as_any(&self) -> &dyn std::any::Any {
17        self
18    }
19}
20
21impl TypeNode for Map {
22    fn ty(&self) -> &Type {
23        &self.ty
24    }
25}
26
27impl ValidateNode for Map {}
28
29impl VisitableNode for Map {
30    fn route_key(&self) -> String {
31        self.def.path()
32    }
33
34    fn drive<V: Visitor>(&self, v: &mut V) {
35        self.def.accept(v);
36        self.key.accept(v);
37        self.value.accept(v);
38        self.ty.accept(v);
39    }
40}