11use djls_source:: Span ;
22use djls_templates:: Filter ;
3+ use djls_templates:: NodeList ;
34use djls_templates:: ParseError ;
45use djls_templates:: TagBit ;
56use djls_templates:: TagDelimiter ;
@@ -17,7 +18,6 @@ use crate::structure::tree::RegionId;
1718use crate :: structure:: tree:: Regions ;
1819use crate :: structure:: tree:: TemplateNode ;
1920use crate :: structure:: tree:: TemplateTree ;
20- use crate :: traits:: SemanticModel ;
2121
2222#[ derive( Debug , Clone ) ]
2323enum TreeOp {
@@ -59,6 +59,14 @@ impl<'db> TemplateTreeBuilder<'db> {
5959 builder
6060 }
6161
62+ pub ( crate ) fn model ( mut self , db : & ' db dyn Db , nodelist : NodeList < ' db > ) -> TemplateTree < ' db > {
63+ for node in nodelist. nodelist ( db) {
64+ self . visit_node ( node) ;
65+ }
66+ self . finish ( ) ;
67+ self . apply_operations ( )
68+ }
69+
6270 fn alloc_region_id ( & mut self , span : Span , parent : Option < RegionId > ) -> RegionId {
6371 let id = RegionId :: new (
6472 u32:: try_from ( self . region_allocs . len ( ) ) . expect ( "template region count overflow" ) ,
@@ -417,12 +425,3 @@ impl Visitor for TemplateTreeBuilder<'_> {
417425 } ) ;
418426 }
419427}
420-
421- impl < ' db > SemanticModel < ' db > for TemplateTreeBuilder < ' db > {
422- type Model = TemplateTree < ' db > ;
423-
424- fn construct ( mut self ) -> Self :: Model {
425- self . finish ( ) ;
426- self . apply_operations ( )
427- }
428- }
0 commit comments