Module map implementation

This commit is contained in:
Aleksey Kladov 2018-08-21 18:30:10 +03:00
parent 4d8be26584
commit b937262c9b
7 changed files with 247 additions and 47 deletions

View file

@ -127,6 +127,12 @@ impl<'a> File<'a> {
.children()
.filter_map(FnDef::cast)
}
pub fn modules(self) -> impl Iterator<Item = Module<'a>> + 'a {
self.syntax()
.children()
.filter_map(Module::cast)
}
}
// FnDef
@ -239,7 +245,13 @@ impl<'a> AstNode<'a> for Module<'a> {
impl<'a> ast::NameOwner<'a> for Module<'a> {}
impl<'a> ast::AttrsOwner<'a> for Module<'a> {}
impl<'a> Module<'a> {}
impl<'a> Module<'a> {
pub fn modules(self) -> impl Iterator<Item = Module<'a>> + 'a {
self.syntax()
.children()
.filter_map(Module::cast)
}
}
// Name
#[derive(Debug, Clone, Copy)]