1use super::identifier::Identifier;
2
3#[derive(Clone, Default)]
4pub struct Type {
5 pub name: Identifier,
6 pub generic_child: Option<Box<Type>>
7}
8impl Type {
9 pub fn new(name: Identifier) -> Type {
10 return Type {
11 name,
12 generic_child: None
13 };
14 }
15
16 pub fn is_valid(&self) -> bool {
17 if !self.name.is_valid() {
18 return false;
19 }
20
21 match self.generic_child.as_ref() {
22 Some(c) => {
23 if !c.is_valid() {
24 return false;
25 }
26 }
27 None => {
28 return true;
29 }
30 }
31
32 return true;
33 }
34}