cairo_lang_syntax/node/
db.rs

1use salsa::Database;
2
3use super::SyntaxNode;
4
5pub trait SyntaxGroup: Database {
6    /// Query for caching [SyntaxNode::get_children].
7    fn get_children<'db>(&'db self, node: SyntaxNode<'db>) -> &'db [SyntaxNode<'db>] {
8        get_children(self.as_dyn_database(), node)
9    }
10}
11impl<T: Database + ?Sized> SyntaxGroup for T {}
12
13#[salsa::tracked(returns(ref))]
14fn get_children<'db>(db: &'db dyn Database, node: SyntaxNode<'db>) -> Vec<SyntaxNode<'db>> {
15    node.get_children_impl(db)
16}