aboutsummaryrefslogtreecommitdiff
path: root/include/cru/base/Bitmask.h
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-09-30 00:16:13 +0800
committerYuqian Yang <crupest@crupest.life>2025-09-30 00:16:13 +0800
commit35ba6a2f719327e2ee3f31d5baa04f0ec5a0a09e (patch)
tree92db6b8b40d409a4faf06c3600111eec200f4775 /include/cru/base/Bitmask.h
parent5862307366f4b7db492f1630bdf21ce240d8dd6c (diff)
downloadcru-35ba6a2f719327e2ee3f31d5baa04f0ec5a0a09e.tar.gz
cru-35ba6a2f719327e2ee3f31d5baa04f0ec5a0a09e.tar.bz2
cru-35ba6a2f719327e2ee3f31d5baa04f0ec5a0a09e.zip
Impl input method for xim.
Diffstat (limited to 'include/cru/base/Bitmask.h')
-rw-r--r--include/cru/base/Bitmask.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/cru/base/Bitmask.h b/include/cru/base/Bitmask.h
index 9b6b8957..7606f784 100644
--- a/include/cru/base/Bitmask.h
+++ b/include/cru/base/Bitmask.h
@@ -10,8 +10,10 @@ struct Bitmask final {
constexpr Bitmask() : value(0) {}
constexpr explicit Bitmask(TUnderlying value) : value(value) {}
+ // Start from 1.
static constexpr Bitmask FromOffset(int offset) {
- return Bitmask(static_cast<TUnderlying>(1u << offset));
+ if (offset == 0) return {};
+ return Bitmask(static_cast<TUnderlying>(1u << (offset - 1)));
}
constexpr bool Has(Bitmask rhs) const { return (value & rhs.value) != 0; }