@@ -71,7 +71,7 @@ bitflags! {
71
71
/// assert!(flags.contains(SimplificationOptions::FILTER_POPULATIONS));
72
72
/// assert!(flags.contains(SimplificationOptions::FILTER_SITES));
73
73
/// ```
74
- #[ derive( Default ) ]
74
+ #[ derive( Default , Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
75
75
#[ repr( transparent) ]
76
76
pub struct SimplificationOptions : RawFlags {
77
77
/// Default behavior
@@ -229,7 +229,7 @@ bitflags! {
229
229
/// assert!(f.contains(TableClearOptions::CLEAR_TS_METADATA_SCHEMA));
230
230
/// assert!(f.contains(TableClearOptions::CLEAR_PROVENANCE);
231
231
/// ```
232
- #[ derive( Default ) ]
232
+ #[ derive( Default , Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
233
233
#[ repr( transparent) ]
234
234
pub struct TableClearOptions : RawFlags {
235
235
/// Default behavior.
@@ -302,7 +302,7 @@ bitflags! {
302
302
/// assert!(f.contains(TableEqualityOptions::IGNORE_PROVENANCE));
303
303
/// assert!(f.contains(TableEqualityOptions::IGNORE_METADATA));
304
304
/// ```
305
- #[ derive( Default ) ]
305
+ #[ derive( Default , Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
306
306
#[ repr( transparent) ]
307
307
pub struct TableEqualityOptions : RawFlags {
308
308
/// Default behavior.
@@ -351,7 +351,7 @@ bitflags! {
351
351
/// let f = TableSortOptions::default().no_check_integrity();
352
352
/// assert_eq!(f, TableSortOptions::NO_CHECK_INTEGRITY);
353
353
/// ```
354
- #[ derive( Default ) ]
354
+ #[ derive( Default , Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
355
355
#[ repr( transparent) ]
356
356
pub struct TableSortOptions : RawFlags {
357
357
/// Default behavior.
@@ -379,7 +379,7 @@ bitflags! {
379
379
/// let f = IndividualTableSortOptions::default();
380
380
/// assert_eq!(f, IndividualTableSortOptions::NONE);
381
381
/// ```
382
- #[ derive( Default ) ]
382
+ #[ derive( Default , Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
383
383
#[ repr( transparent) ]
384
384
pub struct IndividualTableSortOptions : RawFlags {
385
385
/// Default behavior.
@@ -416,7 +416,7 @@ bitflags! {
416
416
/// let f = TreeFlags::default().no_sample_counts();
417
417
/// assert_eq!(f, TreeFlags::NO_SAMPLE_COUNTS);
418
418
/// ```
419
- #[ derive( Default ) ]
419
+ #[ derive( Default , Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
420
420
#[ repr( transparent) ]
421
421
pub struct TreeFlags : RawFlags {
422
422
/// Default behavior.
@@ -460,7 +460,7 @@ bitflags! {
460
460
/// when outputting a [`crate::TableCollection`], then
461
461
/// call [`crate::TableCollection::build_index`] prior to calling
462
462
/// [`crate::TableCollection::dump`].
463
- #[ derive( Default ) ]
463
+ #[ derive( Default , Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
464
464
#[ repr( transparent) ]
465
465
pub struct TableOutputOptions : RawFlags {
466
466
const NONE = 0 ;
@@ -491,7 +491,7 @@ bitflags! {
491
491
/// assert_eq!(f, TreeSequenceFlags::BUILD_INDEXES);
492
492
/// ```
493
493
///
494
- #[ derive( Default ) ]
494
+ #[ derive( Default , Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
495
495
#[ repr( transparent) ]
496
496
pub struct TreeSequenceFlags : RawFlags {
497
497
/// Default behavior
@@ -572,7 +572,7 @@ bitflags! {
572
572
/// let f = TableIntegrityCheckFlags::default().check_trees();
573
573
/// assert_eq!(f, TableIntegrityCheckFlags::CHECK_TREES);
574
574
/// ```
575
- #[ derive( Default ) ]
575
+ #[ derive( Default , Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
576
576
#[ repr( transparent) ]
577
577
pub struct TableIntegrityCheckFlags : RawFlags {
578
578
/// Default behavior is a set of basic checks
@@ -656,7 +656,7 @@ bitflags! {
656
656
/// let f = NodeFlags::default().mark_sample();
657
657
/// assert_eq!(f, NodeFlags::IS_SAMPLE);
658
658
/// ```
659
- #[ derive( Default ) ]
659
+ #[ derive( Default , Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
660
660
#[ repr( transparent) ]
661
661
pub struct NodeFlags : RawFlags {
662
662
/// Default (empty)
@@ -696,7 +696,7 @@ impl NodeFlags {
696
696
}
697
697
698
698
bitflags ! {
699
- #[ derive( Default ) ]
699
+ #[ derive( Default , Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
700
700
#[ repr( transparent) ]
701
701
/// Individual flags
702
702
pub struct IndividualFlags : RawFlags {
@@ -736,19 +736,13 @@ impl_from_for_flag_types!(TableOutputOptions);
736
736
737
737
impl From < RawFlags > for NodeFlags {
738
738
fn from ( flags : RawFlags ) -> Self {
739
- // Safety: node flags can contain user-defined values.
740
- // It is an error on the user's part to define flags
741
- // in the first 16 bits, as per the C API docs.
742
- unsafe { Self :: from_bits_unchecked ( flags) }
739
+ Self :: from_bits_retain ( flags)
743
740
}
744
741
}
745
742
746
743
impl From < RawFlags > for IndividualFlags {
747
744
fn from ( flags : RawFlags ) -> Self {
748
- // Safety: node flags can contain user-defined values.
749
- // It is an error on the user's part to define flags
750
- // in the first 16 bits, as per the C API docs.
751
- unsafe { Self :: from_bits_unchecked ( flags) }
745
+ Self :: from_bits_retain ( flags)
752
746
}
753
747
}
754
748
0 commit comments