@@ -11,7 +11,6 @@ use crate::IndividualTable;
1111use crate :: IndividualTableSortOptions ;
1212use crate :: MigrationTable ;
1313use crate :: MutationTable ;
14- use crate :: NodeFlags ;
1514use crate :: NodeTable ;
1615use crate :: PopulationTable ;
1716use crate :: Position ;
@@ -515,33 +514,12 @@ impl TableCollection {
515514 handle_tsk_return_value ! ( rv, MigrationId ( rv) )
516515 }
517516
517+ node_table_add_row ! (
518518 /// Add a row to the node table
519- pub fn add_node <
520- F : Into < NodeFlags > ,
521- T : Into < Time > ,
522- POP : Into < PopulationId > ,
523- I : Into < IndividualId > ,
524- > (
525- & mut self ,
526- flags : F ,
527- time : T ,
528- population : POP ,
529- individual : I ,
530- ) -> Result < NodeId , TskitError > {
531- let rv = unsafe {
532- ll_bindings:: tsk_node_table_add_row (
533- & mut ( * self . as_mut_ptr ( ) ) . nodes ,
534- flags. into ( ) . bits ( ) ,
535- time. into ( ) . 0 ,
536- population. into ( ) . 0 ,
537- individual. into ( ) . 0 ,
538- std:: ptr:: null ( ) ,
539- 0 ,
540- )
541- } ;
519+ => add_node, self , inner, nodes
520+ ) ;
542521
543- handle_tsk_return_value ! ( rv, rv. into( ) )
544- }
522+ node_table_add_row_with_metadata ! (
545523
546524 /// Add a row with optional metadata to the node table
547525 ///
@@ -563,35 +541,7 @@ impl TableCollection {
563541 /// assert!(tables.add_node_with_metadata(0, 0.0, -1, -1, &metadata).is_ok());
564542 /// # }
565543 /// ```
566- pub fn add_node_with_metadata <
567- F : Into < NodeFlags > ,
568- T : Into < Time > ,
569- POP : Into < PopulationId > ,
570- I : Into < IndividualId > ,
571- M : NodeMetadata ,
572- > (
573- & mut self ,
574- flags : F ,
575- time : T ,
576- population : POP ,
577- individual : I ,
578- metadata : & M ,
579- ) -> Result < NodeId , TskitError > {
580- let md = EncodedMetadata :: new ( metadata) ?;
581- let rv = unsafe {
582- ll_bindings:: tsk_node_table_add_row (
583- & mut ( * self . as_mut_ptr ( ) ) . nodes ,
584- flags. into ( ) . bits ( ) ,
585- time. into ( ) . 0 ,
586- population. into ( ) . 0 ,
587- individual. into ( ) . 0 ,
588- md. as_ptr ( ) ,
589- md. len ( ) . into ( ) ,
590- )
591- } ;
592-
593- handle_tsk_return_value ! ( rv, rv. into( ) )
594- }
544+ => add_node_with_metadata, self , inner, nodes) ;
595545
596546 /// Add a row to the site table
597547 pub fn add_site < P : Into < Position > > (
@@ -1226,6 +1176,7 @@ impl crate::traits::NodeListGenerator for TableCollection {}
12261176#[ cfg( test) ]
12271177mod test {
12281178 use super :: * ;
1179+ use crate :: NodeFlags ;
12291180
12301181 fn make_small_table_collection ( ) -> TableCollection {
12311182 let mut tables = TableCollection :: new ( 1000. ) . unwrap ( ) ;
0 commit comments