1use dada_ir_ast::ast::{AstBlock, AstGenericTerm, AstMember};
2
3use super::*;
4
5pub trait SourceFileParse {
7 fn parse(self, db: &dyn crate::Db) -> AstModule<'_>;
8}
9
10pub trait ClassItemMembers<'db> {
12 fn members(self, db: &'db dyn crate::Db) -> &'db SpanVec<'db, AstMember<'db>>;
13}
14
15pub trait FunctionBlock<'db> {
17 fn body_block(self, db: &'db dyn crate::Db) -> Option<AstBlock<'db>>;
18}
19
20pub trait SquareBracketArgs<'db> {
22 fn parse_as_generics(self, db: &'db dyn crate::Db) -> SpanVec<'db, AstGenericTerm<'db>>;
23}