Skip to content

Commit 4c827be

Browse files
committed
deal w/some of the fallout
1 parent 42a2305 commit 4c827be

16 files changed

+50
-77
lines changed

src/_macros.rs

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -65,27 +65,6 @@ macro_rules! handle_metadata_return {
6565
};
6666
}
6767

68-
macro_rules! raw_metadata_getter_for_tables {
69-
($idtype: ty) => {
70-
fn raw_metadata<I: Into<$idtype>>(&self, row: I) -> Option<&[u8]> {
71-
assert!(
72-
(self.num_rows() == 0 && self.as_ref().metadata_length == 0)
73-
|| (!self.as_ref().metadata.is_null()
74-
&& !self.as_ref().metadata_offset.is_null())
75-
);
76-
unsafe {
77-
$crate::sys::tsk_ragged_column_access::<'_, u8, $idtype, _, _>(
78-
row.into(),
79-
self.as_ref().metadata,
80-
self.num_rows(),
81-
self.as_ref().metadata_offset,
82-
self.as_ref().metadata_length,
83-
)
84-
}
85-
}
86-
};
87-
}
88-
8968
macro_rules! row_lending_iterator_get {
9069
() => {
9170
fn get(&self) -> Option<&Self::Item> {

src/edge_table.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ fn make_edge_table_row(table: &EdgeTable, pos: tsk_id_t) -> Option<EdgeTableRow>
3636
right: table.right(pos)?,
3737
parent: table.parent(pos)?,
3838
child: table.child(pos)?,
39-
metadata: table.raw_metadata(pos).map(|m| m.to_vec()),
39+
metadata: table.table_.raw_metadata(pos).map(|m| m.to_vec()),
4040
})
4141
}
4242

@@ -135,7 +135,7 @@ impl streaming_iterator::StreamingIterator for EdgeTableRowView<'_> {
135135
self.right = self.table.right(self.id).unwrap_or_else(|| f64::NAN.into());
136136
self.parent = self.table.parent(self.id).unwrap_or(NodeId::NULL);
137137
self.child = self.table.child(self.id).unwrap_or(NodeId::NULL);
138-
self.metadata = self.table.raw_metadata(self.id);
138+
self.metadata = self.table.table_.raw_metadata(self.id);
139139
}
140140
}
141141

@@ -214,8 +214,6 @@ impl EdgeTable {
214214
self.as_ref().num_rows.into()
215215
}
216216

217-
raw_metadata_getter_for_tables!(EdgeId);
218-
219217
/// Return the ``parent`` value from row ``row`` of the table.
220218
///
221219
/// # Returns
@@ -276,7 +274,7 @@ impl EdgeTable {
276274
&self,
277275
row: impl Into<EdgeId>,
278276
) -> Option<Result<T, TskitError>> {
279-
let buffer = self.raw_metadata(row)?;
277+
let buffer = self.table_.raw_metadata(row)?;
280278
Some(decode_metadata_row!(T, buffer).map_err(|e| e.into()))
281279
}
282280

@@ -323,7 +321,7 @@ impl EdgeTable {
323321
right: self.right(r)?,
324322
parent: self.parent(r)?,
325323
child: self.child(r)?,
326-
metadata: self.raw_metadata(r.into()),
324+
metadata: self.table_.raw_metadata(r.into()),
327325
};
328326
Some(view)
329327
}

src/individual_table.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ impl streaming_iterator::StreamingIterator for IndividualTableRowView<'_> {
9292
self.flags = self.table.flags(self.id).unwrap_or_else(|| 0.into());
9393
self.location = self.table.location(self.id);
9494
self.parents = self.table.parents(self.id);
95-
self.metadata = self.table.raw_metadata(self.id);
95+
self.metadata = self.table.table_.raw_metadata(self.id);
9696
}
9797
}
9898

@@ -154,7 +154,7 @@ fn make_individual_table_row(table: &IndividualTable, pos: tsk_id_t) -> Option<I
154154
flags: table.flags(pos)?,
155155
location: table.location(pos).map(|s| s.to_vec()),
156156
parents: table.parents(pos).map(|s| s.to_vec()),
157-
metadata: table.raw_metadata(pos).map(|m| m.to_vec()),
157+
metadata: table.table_.raw_metadata(pos).map(|m| m.to_vec()),
158158
})
159159
}
160160

@@ -195,8 +195,6 @@ impl IndividualTable {
195195
self.table_.as_ref()
196196
}
197197

198-
raw_metadata_getter_for_tables!(IndividualId);
199-
200198
/// Return the number of rows
201199
pub fn num_rows(&self) -> crate::SizeType {
202200
self.as_ref().num_rows.into()
@@ -430,7 +428,7 @@ match tables.individuals().metadata::<MutationMetadata>(0)
430428
&self,
431429
row: impl Into<IndividualId>,
432430
) -> Option<Result<T, TskitError>> {
433-
let buffer = self.raw_metadata(row)?;
431+
let buffer = self.table_.raw_metadata(row)?;
434432
Some(decode_metadata_row!(T, buffer).map_err(|e| e.into()))
435433
}
436434

@@ -477,7 +475,7 @@ match tables.individuals().metadata::<MutationMetadata>(0)
477475
flags: self.flags(r)?,
478476
location: self.location(r),
479477
parents: self.parents(r),
480-
metadata: self.raw_metadata(r.into()),
478+
metadata: self.table_.raw_metadata(r.into()),
481479
};
482480
Some(view)
483481
}

src/migration_table.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,6 @@ impl MigrationTable {
228228
self.as_ref().num_rows.into()
229229
}
230230

231-
raw_metadata_getter_for_tables!(MigrationId);
232-
233231
/// Return the left coordinate for a given row.
234232
///
235233
/// # Returns

src/mutation_table.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,6 @@ impl MutationTable {
224224
self.as_ref().num_rows.into()
225225
}
226226

227-
raw_metadata_getter_for_tables!(MutationId);
228-
229227
/// Return the ``site`` value from row ``row`` of the table.
230228
///
231229
/// # Errors

src/node_table.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ fn make_node_table_row(table: &NodeTable, pos: tsk_id_t) -> Option<NodeTableRow>
3838
flags: table.flags(pos)?,
3939
population: table.population(pos)?,
4040
individual: table.individual(pos)?,
41-
metadata: table.raw_metadata(pos).map(|m| m.to_vec()),
41+
metadata: table.table_.raw_metadata(pos).map(|m| m.to_vec()),
4242
})
4343
}
4444

@@ -136,7 +136,7 @@ impl streaming_iterator::StreamingIterator for NodeTableRowView<'_> {
136136
self.flags = self.table.flags(self.id).unwrap_or_else(|| 0.into());
137137
self.population = self.table.population(self.id).unwrap_or(PopulationId::NULL);
138138
self.individual = self.table.individual(self.id).unwrap_or(IndividualId::NULL);
139-
self.metadata = self.table.raw_metadata(self.id);
139+
self.metadata = self.table.table_.raw_metadata(self.id);
140140
}
141141
}
142142

@@ -456,8 +456,6 @@ impl NodeTable {
456456
self.as_ref().num_rows.into()
457457
}
458458

459-
raw_metadata_getter_for_tables!(NodeId);
460-
461459
/// Return the ``time`` value from row ``row`` of the table.
462460
///
463461
/// # Returns
@@ -592,7 +590,7 @@ impl NodeTable {
592590
&self,
593591
row: impl Into<NodeId>,
594592
) -> Option<Result<T, TskitError>> {
595-
let buffer = self.table_.raw_metadata(row).ok()??;
593+
let buffer = self.table_.raw_metadata(row)?;
596594
Some(decode_metadata_row!(T, buffer).map_err(|e| e.into()))
597595
}
598596

@@ -639,7 +637,7 @@ impl NodeTable {
639637
flags: self.flags(r)?,
640638
population: self.population(r)?,
641639
individual: self.individual(r)?,
642-
metadata: self.raw_metadata(r.into()),
640+
metadata: self.table_.raw_metadata(r.into()),
643641
};
644642
Some(view)
645643
}

src/population_table.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ fn make_population_table_row(table: &PopulationTable, pos: tsk_id_t) -> Option<P
2424

2525
match index {
2626
i if i < table.num_rows() => {
27-
let metadata = table.raw_metadata(pos).map(|m| m.to_vec());
27+
let metadata = table.table_.raw_metadata(pos).map(|m| m.to_vec());
2828
Some(PopulationTableRow {
2929
id: pos.into(),
3030
metadata,
@@ -102,7 +102,7 @@ impl streaming_iterator::StreamingIterator for PopulationTableRowView<'_> {
102102

103103
fn advance(&mut self) {
104104
self.id = (i32::from(self.id) + 1).into();
105-
self.metadata = self.table.raw_metadata(self.id);
105+
self.metadata = self.table.table_.raw_metadata(self.id);
106106
}
107107
}
108108

@@ -169,8 +169,6 @@ impl PopulationTable {
169169
self.table_.as_ref()
170170
}
171171

172-
raw_metadata_getter_for_tables!(PopulationId);
173-
174172
/// Return the number of rows.
175173
pub fn num_rows(&self) -> SizeType {
176174
self.as_ref().num_rows.into()
@@ -196,7 +194,7 @@ impl PopulationTable {
196194
&self,
197195
row: impl Into<PopulationId>,
198196
) -> Option<Result<T, TskitError>> {
199-
let buffer = self.raw_metadata(row)?;
197+
let buffer = self.table_.raw_metadata(row)?;
200198
Some(decode_metadata_row!(T, buffer).map_err(TskitError::from))
201199
}
202200

@@ -241,7 +239,7 @@ impl PopulationTable {
241239
let view = PopulationTableRowView {
242240
table: self,
243241
id: r.into(),
244-
metadata: self.raw_metadata(r.into()),
242+
metadata: self.table_.raw_metadata(r.into()),
245243
};
246244
Some(view)
247245
}

src/site_table.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,6 @@ impl SiteTable {
188188
self.table_.as_ref()
189189
}
190190

191-
raw_metadata_getter_for_tables!(SiteId);
192-
193191
/// Return the number of rows
194192
pub fn num_rows(&self) -> SizeType {
195193
self.as_ref().num_rows.into()

src/sys/edge_table.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ impl EdgeTable {
8585
pub fn right(&self, row: EdgeId) -> Option<Position> {
8686
safe_tsk_column_access!(self, row, Position, right)
8787
}
88+
89+
raw_metadata_getter_for_tables!(EdgeId);
8890
}
8991

9092
impl Default for EdgeTable {

src/sys/individual_table.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ impl IndividualTable {
7373
pub fn flags(&self, row: IndividualId) -> Option<IndividualFlags> {
7474
safe_tsk_column_access!(self, row, IndividualFlags, flags)
7575
}
76+
77+
raw_metadata_getter_for_tables!(IndividualId);
7678
}
7779

7880
impl Default for IndividualTable {

0 commit comments

Comments
 (0)