Skip to content

Commit 29c1237

Browse files
authored
refactor: use Into<Idtype> for metadata retrieval fns (#633)
BREAKING CHANGE: use of table.metadata(0.into()) becomes table.metadata(0)
1 parent b420bee commit 29c1237

File tree

11 files changed

+17
-19
lines changed

11 files changed

+17
-19
lines changed

src/edge_table.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ impl EdgeTable {
278278
/// See [`crate::IndividualTable::metadata`] for examples.
279279
pub fn metadata<T: metadata::EdgeMetadata>(
280280
&self,
281-
row: EdgeId,
281+
row: impl Into<EdgeId>,
282282
) -> Option<Result<T, TskitError>> {
283283
let buffer = self.raw_metadata(row)?;
284284
Some(decode_metadata_row!(T, buffer).map_err(|e| e.into()))

src/individual_table.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ impl IndividualTable {
290290
/// # assert!(tables.add_individual_with_metadata(0, None, None,
291291
/// # &metadata).is_ok());
292292
/// // We know the metadata are here, so we unwrap the Option and the Result:
293-
/// let decoded = tables.individuals().metadata::<IndividualMetadata>(0.into()).unwrap().unwrap();
293+
/// let decoded = tables.individuals().metadata::<IndividualMetadata>(0).unwrap().unwrap();
294294
/// assert_eq!(decoded.x, 1);
295295
/// # }
296296
/// ```
@@ -313,7 +313,7 @@ impl IndividualTable {
313313
/// # assert!(tables
314314
/// # .add_individual_with_metadata(0, None, None, &metadata)
315315
/// # .is_ok());
316-
/// match tables.individuals().metadata::<IndividualMetadata>(0.into())
316+
/// match tables.individuals().metadata::<IndividualMetadata>(0)
317317
/// {
318318
/// Some(Ok(metadata)) => assert_eq!(metadata.x, 1),
319319
/// Some(Err(_)) => panic!("got an error??"),
@@ -350,7 +350,7 @@ impl IndividualTable {
350350
# }
351351
#
352352
# let mut tables = tskit::TableCollection::new(10.).unwrap();
353-
match tables.individuals().metadata::<MutationMetadata>(0.into())
353+
match tables.individuals().metadata::<MutationMetadata>(0)
354354
{
355355
Some(Ok(metadata)) => assert_eq!(metadata.x, 1),
356356
Some(Err(_)) => panic!("got an error??"),
@@ -398,7 +398,7 @@ match tables.individuals().metadata::<MutationMetadata>(0.into())
398398
/// // Add a row with our metadata
399399
/// assert!(tables.add_individual_with_metadata(0, None, None, &metadata).is_ok());
400400
/// // Trying to fetch using our SECOND type as the generic type works!
401-
/// match tables.individuals().metadata::<IndividualMetadataToo>(0.into())
401+
/// match tables.individuals().metadata::<IndividualMetadataToo>(0)
402402
/// {
403403
/// Some(Ok(metadata)) => assert_eq!(metadata.x, 1),
404404
/// Some(Err(_)) => panic!("got an error??"),
@@ -420,7 +420,7 @@ match tables.individuals().metadata::<MutationMetadata>(0.into())
420420
/// metadata type for a table.
421421
pub fn metadata<T: metadata::IndividualMetadata>(
422422
&self,
423-
row: IndividualId,
423+
row: impl Into<IndividualId>,
424424
) -> Option<Result<T, TskitError>> {
425425
let buffer = self.raw_metadata(row)?;
426426
Some(decode_metadata_row!(T, buffer).map_err(|e| e.into()))

src/migration_table.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ impl MigrationTable {
320320
/// See [`crate::IndividualTable::metadata`] for examples.
321321
pub fn metadata<T: metadata::MigrationMetadata>(
322322
&self,
323-
row: MigrationId,
323+
row: impl Into<MigrationId>,
324324
) -> Option<Result<T, TskitError>> {
325325
let buffer = self.raw_metadata(row)?;
326326
Some(decode_metadata_row!(T, buffer).map_err(|e| e.into()))

src/mutation_table.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ impl MutationTable {
308308
/// See [`crate::IndividualTable::metadata`] for examples.
309309
pub fn metadata<T: metadata::MutationMetadata>(
310310
&self,
311-
row: MutationId,
311+
row: impl Into<MutationId>,
312312
) -> Option<Result<T, TskitError>> {
313313
let buffer = self.raw_metadata(row)?;
314314
Some(decode_metadata_row!(T, buffer).map_err(|e| e.into()))

src/node_table.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -602,7 +602,7 @@ impl NodeTable {
602602
/// See [`crate::IndividualTable::metadata`] for examples.
603603
pub fn metadata<T: metadata::NodeMetadata>(
604604
&self,
605-
row: NodeId,
605+
row: impl Into<NodeId>,
606606
) -> Option<Result<T, TskitError>> {
607607
let buffer = self.table_.raw_metadata(row).ok()??;
608608
Some(decode_metadata_row!(T, buffer).map_err(|e| e.into()))

src/population_table.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ impl PopulationTable {
194194
/// See [`crate::IndividualTable::metadata`] for examples.
195195
pub fn metadata<T: metadata::PopulationMetadata>(
196196
&self,
197-
row: PopulationId,
197+
row: impl Into<PopulationId>,
198198
) -> Option<Result<T, TskitError>> {
199199
let buffer = self.raw_metadata(row)?;
200200
Some(decode_metadata_row!(T, buffer).map_err(TskitError::from))

src/site_table.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ impl SiteTable {
243243
/// See [`crate::IndividualTable::metadata`] for examples.
244244
pub fn metadata<T: metadata::SiteMetadata>(
245245
&self,
246-
row: SiteId,
246+
row: impl Into<SiteId>,
247247
) -> Option<Result<T, TskitError>> {
248248
let buffer = self.raw_metadata(row)?;
249249
Some(decode_metadata_row!(T, buffer).map_err(TskitError::from))

src/sys/node_table.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@ impl NodeTable {
8484
}
8585
}
8686

87-
pub fn raw_metadata(&self, row: NodeId) -> Result<Option<&[u8]>, TskitError> {
87+
pub fn raw_metadata(&self, row: impl Into<NodeId>) -> Result<Option<&[u8]>, TskitError> {
88+
let row = row.into();
8889
if row.is_null() || row.as_usize() >= self.as_ref().num_rows.try_into().unwrap() {
8990
Err(TskitError::IndexError)
9091
} else {

src/table_collection.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ impl TableCollection {
336336
/// let metadata = IndividualMetadata{x: 1};
337337
/// assert!(tables.add_individual_with_metadata(0, None, None,
338338
/// &metadata).is_ok());
339-
/// # let decoded = tables.individuals().metadata::<IndividualMetadata>(0.into()).unwrap().unwrap();
339+
/// # let decoded = tables.individuals().metadata::<IndividualMetadata>(0).unwrap().unwrap();
340340
/// # assert_eq!(decoded.x, 1);
341341
/// # }
342342
pub fn add_individual_with_metadata<F, L, P, M>(

tests/book_metadata.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,7 @@ fn book_mutation_metadata() {
8787
// There is also no metadata at row 2,
8888
// because that row does not exist, so
8989
// you get None back
90-
assert!(tables
91-
.mutations()
92-
.metadata::<MutationMetadata>(2.into())
93-
.is_none());
90+
assert!(tables.mutations().metadata::<MutationMetadata>(2).is_none());
9491
// ANCHOR_END: metadata_retrieval_none
9592

9693
// ANCHOR: metadata_bulk_decode_lending_iter

0 commit comments

Comments
 (0)