Skip to content

Commit c302ed8

Browse files
committed
okay
1 parent 5045d0a commit c302ed8

File tree

1 file changed

+55
-30
lines changed

1 file changed

+55
-30
lines changed

src/table_collection.rs

Lines changed: 55 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@ use crate::sys::bindings as ll_bindings;
1212
use crate::sys::TableCollection as LLTableCollection;
1313
use crate::types::Bookmark;
1414
use crate::EdgeTable;
15+
use crate::IndividualTable;
1516
use crate::IndividualTableSortOptions;
1617
use crate::MigrationId;
1718
use crate::MigrationTable;
1819
use crate::MutationId;
1920
use crate::MutationTable;
2021
use crate::NodeTable;
2122
use crate::PopulationId;
23+
use crate::PopulationTable;
2224
use crate::Position;
2325
use crate::SimplificationOptions;
2426
use 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

Comments
 (0)