Skip to content

Commit 0366800

Browse files
authored
* Update trees API to use NodeId (#145)
* Add NULL_NODE_ID * Add NULL_NODE_ID to prelude.rs
1 parent 7a716bb commit 0366800

File tree

5 files changed

+109
-94
lines changed

5 files changed

+109
-94
lines changed

src/_macros.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ macro_rules! table_row_access {
234234
macro_rules! iterator_for_nodeiterator {
235235
($ty: ty) => {
236236
impl Iterator for $ty {
237-
type Item = $crate::tsk_id_t;
237+
type Item = $crate::NodeId;
238238
fn next(&mut self) -> Option<Self::Item> {
239239
self.next_node();
240240
self.current_node()
@@ -246,7 +246,10 @@ macro_rules! iterator_for_nodeiterator {
246246
macro_rules! tree_array_slice {
247247
($self: ident, $array: ident, $len: expr) => {
248248
unsafe {
249-
std::slice::from_raw_parts((*$self.as_ptr()).$array as *const tsk_id_t, $len as usize)
249+
std::slice::from_raw_parts(
250+
(*$self.as_ptr()).$array as *const $crate::NodeId,
251+
$len as usize,
252+
)
250253
}
251254
};
252255
}

src/lib.rs

+3
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,9 @@ impl_id_traits!(EdgeId);
210210
/// "Null" identifier value.
211211
pub const TSK_NULL: tsk_id_t = -1;
212212

213+
/// "Null" identifier value for [``NodeId``]
214+
pub const NULL_NODE_ID: NodeId = NodeId(-1);
215+
213216
pub use edge_table::{EdgeTable, EdgeTableRow};
214217
pub use error::TskitError;
215218
pub use flags::*;

src/prelude.rs

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ pub use crate::tsk_size_t;
66
pub use crate::NodeListGenerator;
77
pub use crate::TableAccess;
88
pub use crate::TskitTypeAccess;
9+
pub use crate::NULL_NODE_ID;
910
pub use crate::TSK_NODE_IS_SAMPLE;
1011
pub use crate::TSK_NULL;
1112
pub use streaming_iterator::DoubleEndedStreamingIterator;

src/test_simplification.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ mod tests {
3939
assert!(idmap_option.is_some());
4040
let idmap = idmap_option.unwrap();
4141
for &i in samples {
42-
assert_ne!(idmap[i as usize], TSK_NULL);
42+
assert_ne!(idmap[usize::from(i)], TSK_NULL);
4343
}
4444
}
4545
}

0 commit comments

Comments
 (0)