1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use super::*;

impl Default for ImportTermNode {
    fn default() -> Self {
        Self::Group(Default::default())
    }
}
// impl ValkyrieNode for ImportTermNode {
//     fn get_range(&self) -> Range<usize> {
//         match self {
//             Self::Group(v) => {v.get_range()}
//             Self::All(v) => {v.get_range()}
//             Self::Alias(v) => {v.get_range()}
//         }
//     }
// }
impl ValkyrieNode for ImportAllNode {
    fn get_range(&self) -> Range<usize> {
        Range { start: self.span.start as usize, end: self.span.end as usize }
    }
}
impl ValkyrieNode for ImportAliasNode {
    fn get_range(&self) -> Range<usize> {
        Range { start: self.span.start as usize, end: self.span.end as usize }
    }
}
impl FromIterator<IdentifierNode> for ImportGroupNode {
    fn from_iter<T: IntoIterator<Item = IdentifierNode>>(iter: T) -> Self {
        Self { path: iter.into_iter().collect(), terms: vec![] }
    }
}
impl FromIterator<ImportTermNode> for ImportGroupNode {
    fn from_iter<T: IntoIterator<Item = ImportTermNode>>(iter: T) -> Self {
        Self { path: vec![], terms: iter.into_iter().collect() }
    }
}