@@ -118,7 +118,7 @@ NB_MODULE(_benchmark, m) {
118
118
using benchmark::Counter;
119
119
nb::class_<Counter> py_counter (m, " Counter" );
120
120
121
- nb::enum_<Counter::Flags>(py_counter, " Flags" , nb::is_arithmetic ())
121
+ nb::enum_<Counter::Flags>(py_counter, " Flags" , nb::is_arithmetic (), nb::is_flag () )
122
122
.value (" kDefaults" , Counter::Flags::kDefaults )
123
123
.value (" kIsRate" , Counter::Flags::kIsRate )
124
124
.value (" kAvgThreads" , Counter::Flags::kAvgThreads )
@@ -129,24 +129,17 @@ NB_MODULE(_benchmark, m) {
129
129
.value (" kAvgIterations" , Counter::Flags::kAvgIterations )
130
130
.value (" kAvgIterationsRate" , Counter::Flags::kAvgIterationsRate )
131
131
.value (" kInvert" , Counter::Flags::kInvert )
132
- .export_values ()
133
- .def (" __or__" , [](Counter::Flags a, Counter::Flags b) {
134
- return static_cast <int >(a) | static_cast <int >(b);
135
- });
132
+ .export_values ();
136
133
137
134
nb::enum_<Counter::OneK>(py_counter, " OneK" )
138
135
.value (" kIs1000" , Counter::OneK::kIs1000 )
139
136
.value (" kIs1024" , Counter::OneK::kIs1024 )
140
137
.export_values ();
141
138
142
139
py_counter
143
- .def (
144
- " __init__" ,
145
- [](Counter* c, double value, int flags, Counter::OneK oneK) {
146
- new (c) Counter (value, static_cast <Counter::Flags>(flags), oneK);
147
- },
148
- nb::arg (" value" ) = 0 ., nb::arg (" flags" ) = Counter::kDefaults ,
149
- nb::arg (" k" ) = Counter::kIs1000 )
140
+ .def (nb::init<double , Counter::Flags, Counter::OneK>(),
141
+ nb::arg (" value" ) = 0 ., nb::arg (" flags" ) = Counter::kDefaults ,
142
+ nb::arg (" k" ) = Counter::kIs1000 )
150
143
.def (" __init__" ,
151
144
([](Counter* c, double value) { new (c) Counter (value); }))
152
145
.def_rw (" value" , &Counter::value)
0 commit comments