]>
Commit | Line | Data |
---|---|---|
6c6dd732 | 1 | std::vector<const QuantityFlag *> |
c23c8659 ML |
2 | QuantityFlag::flags_from_mask(unsigned int mask) |
3 | { | |
6c6dd732 | 4 | auto result = std::vector<const QuantityFlag *>(); |
c23c8659 ML |
5 | while (mask) |
6 | { | |
7 | unsigned int new_mask = mask & (mask - 1); | |
8 | result.push_back(QuantityFlag::get( | |
9 | static_cast<enum sr_mqflag>(mask ^ new_mask))); | |
10 | mask = new_mask; | |
11 | } | |
12 | return result; | |
13 | } | |
b2db9f3b | 14 | |
6c6dd732 | 15 | unsigned int QuantityFlag::mask_from_flags(std::vector<const QuantityFlag *> flags) |
b2db9f3b ML |
16 | { |
17 | unsigned int result = 0; | |
18 | for (auto flag : flags) | |
19 | result |= flag->id(); | |
20 | return result; | |
21 | } |