cairo_lang_syntax/node/
db.rs

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