icydb_schema/node/
tuple.rs

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