1use crate::prelude::*;
2
3#[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}