@@ -12,13 +12,15 @@ use crate::sys::bindings as ll_bindings;
1212use crate :: sys:: TableCollection as LLTableCollection ;
1313use crate :: types:: Bookmark ;
1414use crate :: EdgeTable ;
15+ use crate :: IndividualTable ;
1516use crate :: IndividualTableSortOptions ;
1617use crate :: MigrationId ;
1718use crate :: MigrationTable ;
1819use crate :: MutationId ;
1920use crate :: MutationTable ;
2021use crate :: NodeTable ;
2122use crate :: PopulationId ;
23+ use crate :: PopulationTable ;
2224use crate :: Position ;
2325use crate :: SimplificationOptions ;
2426use crate :: SiteId ;
@@ -98,21 +100,55 @@ impl TableCollection {
98100 /// ```
99101 pub fn new < P : Into < Position > > ( sequence_length : P ) -> Result < Self , TskitError > {
100102 let mut inner = LLTableCollection :: new ( sequence_length. into ( ) . into ( ) ) ?;
101- let views = crate :: table_views:: TableViews :: new_from_ll_table_collection ( & mut inner) ?;
103+ let edges = crate :: EdgeTable :: new_from_table ( inner. edges_mut ( ) ) ?;
104+ let nodes = crate :: NodeTable :: new_from_table ( inner. nodes_mut ( ) ) ?;
105+ let sites = crate :: SiteTable :: new_from_table ( inner. sites_mut ( ) ) ?;
106+ let mutations = crate :: MutationTable :: new_from_table ( inner. mutations_mut ( ) ) ?;
107+ let individuals = crate :: IndividualTable :: new_from_table ( inner. individuals_mut ( ) ) ?;
108+ let populations = crate :: PopulationTable :: new_from_table ( inner. populations_mut ( ) ) ?;
109+ let migrations = crate :: MigrationTable :: new_from_table ( inner. migrations_mut ( ) ) ?;
110+ #[ cfg( feature = "provenance" ) ]
111+ let provenances =
112+ crate :: provenance:: ProvenanceTable :: new_from_table ( inner. provenances_mut ( ) ) ?;
102113 Ok ( Self {
103114 inner,
104115 idmap : vec ! [ ] ,
105- views,
116+ edges,
117+ nodes,
118+ sites,
119+ mutations,
120+ individuals,
121+ populations,
122+ migrations,
123+ #[ cfg( feature = "provenance" ) ]
124+ provenances,
106125 } )
107126 }
108127
109128 pub ( crate ) fn new_from_ll ( lltables : LLTableCollection ) -> Result < Self , TskitError > {
110129 let mut inner = lltables;
111- let views = crate :: table_views:: TableViews :: new_from_ll_table_collection ( & mut inner) ?;
130+ let edges = crate :: EdgeTable :: new_from_table ( inner. edges_mut ( ) ) ?;
131+ let nodes = crate :: NodeTable :: new_from_table ( inner. nodes_mut ( ) ) ?;
132+ let sites = crate :: SiteTable :: new_from_table ( inner. sites_mut ( ) ) ?;
133+ let mutations = crate :: MutationTable :: new_from_table ( inner. mutations_mut ( ) ) ?;
134+ let individuals = crate :: IndividualTable :: new_from_table ( inner. individuals_mut ( ) ) ?;
135+ let populations = crate :: PopulationTable :: new_from_table ( inner. populations_mut ( ) ) ?;
136+ let migrations = crate :: MigrationTable :: new_from_table ( inner. migrations_mut ( ) ) ?;
137+ #[ cfg( feature = "provenance" ) ]
138+ let provenances =
139+ crate :: provenance:: ProvenanceTable :: new_from_table ( inner. provenances_mut ( ) ) ?;
112140 Ok ( Self {
113141 inner,
114142 idmap : vec ! [ ] ,
115- views,
143+ edges,
144+ nodes,
145+ sites,
146+ mutations,
147+ individuals,
148+ populations,
149+ migrations,
150+ #[ cfg( feature = "provenance" ) ]
151+ provenances,
116152 } )
117153 }
118154
@@ -226,7 +262,7 @@ impl TableCollection {
226262 parent : P ,
227263 child : C ,
228264 ) -> Result < EdgeId , TskitError > {
229- self . views . edges_mut ( ) . add_row ( left, right, parent, child)
265+ self . edges_mut ( ) . add_row ( left, right, parent, child)
230266 }
231267
232268 /// Add a row with optional metadata to the edge table
@@ -263,8 +299,7 @@ impl TableCollection {
263299 child : C ,
264300 metadata : & M ,
265301 ) -> Result < EdgeId , TskitError > {
266- self . views
267- . edges_mut ( )
302+ self . edges_mut ( )
268303 . add_row_with_metadata ( left, right, parent, child, metadata)
269304 }
270305
@@ -315,9 +350,7 @@ impl TableCollection {
315350 L : crate :: IndividualLocation ,
316351 P : crate :: IndividualParents ,
317352 {
318- self . views
319- . individuals_mut ( )
320- . add_row ( flags, location, parents)
353+ self . individuals_mut ( ) . add_row ( flags, location, parents)
321354 }
322355
323356 /// Add a row with metadata to the individual table
@@ -356,8 +389,7 @@ impl TableCollection {
356389 P : crate :: IndividualParents ,
357390 M : crate :: metadata:: IndividualMetadata ,
358391 {
359- self . views
360- . individuals_mut ( )
392+ self . individuals_mut ( )
361393 . add_row_with_metadata ( flags, location, parents, metadata)
362394 }
363395
@@ -391,9 +423,7 @@ impl TableCollection {
391423 DEST : Into < PopulationId > ,
392424 T : Into < Time > ,
393425 {
394- self . views
395- . migrations_mut ( )
396- . add_row ( span, node, source_dest, time)
426+ self . migrations_mut ( ) . add_row ( span, node, source_dest, time)
397427 }
398428
399429 /// Add a row with optional metadata to the migration table
@@ -442,8 +472,7 @@ impl TableCollection {
442472 T : Into < Time > ,
443473 M : MigrationMetadata ,
444474 {
445- self . views
446- . migrations_mut ( )
475+ self . migrations_mut ( )
447476 . add_row_with_metadata ( span, node, source_dest, time, metadata)
448477 }
449478
@@ -530,7 +559,7 @@ impl TableCollection {
530559 position : P ,
531560 ancestral_state : Option < & [ u8 ] > ,
532561 ) -> Result < SiteId , TskitError > {
533- self . views . sites_mut ( ) . add_row ( position, ancestral_state)
562+ self . sites_mut ( ) . add_row ( position, ancestral_state)
534563 }
535564
536565 /// Add a row with optional metadata to the site table
@@ -561,8 +590,7 @@ impl TableCollection {
561590 ancestral_state : Option < & [ u8 ] > ,
562591 metadata : & M ,
563592 ) -> Result < SiteId , TskitError > {
564- self . views
565- . sites_mut ( )
593+ self . sites_mut ( )
566594 . add_row_with_metadata ( position, ancestral_state, metadata)
567595 }
568596
@@ -581,8 +609,7 @@ impl TableCollection {
581609 P : Into < MutationId > ,
582610 T : Into < Time > ,
583611 {
584- self . views
585- . mutations_mut ( )
612+ self . mutations_mut ( )
586613 . add_row ( site, node, parent, time, derived_state)
587614 }
588615
@@ -623,7 +650,7 @@ impl TableCollection {
623650 T : Into < Time > ,
624651 M : MutationMetadata ,
625652 {
626- self . views . mutations_mut ( ) . add_row_with_metadata (
653+ self . mutations_mut ( ) . add_row_with_metadata (
627654 site,
628655 node,
629656 parent,
@@ -642,7 +669,7 @@ impl TableCollection {
642669 /// tables.add_population().unwrap();
643670 /// ```
644671 pub fn add_population ( & mut self ) -> Result < PopulationId , TskitError > {
645- self . views . populations_mut ( ) . add_row ( )
672+ self . populations_mut ( ) . add_row ( )
646673 }
647674
648675 /// Add a row with optional metadata to the population_table
@@ -668,7 +695,7 @@ impl TableCollection {
668695 & mut self ,
669696 metadata : & M ,
670697 ) -> Result < PopulationId , TskitError > {
671- self . views . populations_mut ( ) . add_row_with_metadata ( metadata)
698+ self . populations_mut ( ) . add_row_with_metadata ( metadata)
672699 }
673700
674701 /// Build the "input" and "output"
@@ -919,10 +946,8 @@ impl TableCollection {
919946 idmap : bool ,
920947 ) -> Result < Option < & [ NodeId ] > , TskitError > {
921948 if idmap {
922- self . idmap . resize (
923- usize:: try_from ( self . views . nodes ( ) . num_rows ( ) ) ?,
924- NodeId :: NULL ,
925- ) ;
949+ self . idmap
950+ . resize ( usize:: try_from ( self . nodes ( ) . num_rows ( ) ) ?, NodeId :: NULL ) ;
926951 }
927952 let rv = unsafe {
928953 ll_bindings:: tsk_table_collection_simplify (
@@ -1047,7 +1072,7 @@ impl TableCollection {
10471072 /// # }
10481073 /// ```
10491074 pub fn add_provenance ( & mut self , record : & str ) -> Result < crate :: ProvenanceId , TskitError > {
1050- self . views . provenances_mut ( ) . add_row ( record)
1075+ self . provenances_mut ( ) . add_row ( record)
10511076 }
10521077
10531078 /// Set the edge table from an [`EdgeTable`](`crate::EdgeTable`)
0 commit comments