diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-09-30 00:16:13 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-09-30 00:16:13 +0800 |
commit | 35ba6a2f719327e2ee3f31d5baa04f0ec5a0a09e (patch) | |
tree | 92db6b8b40d409a4faf06c3600111eec200f4775 /include/cru/base | |
parent | 5862307366f4b7db492f1630bdf21ce240d8dd6c (diff) | |
download | cru-35ba6a2f719327e2ee3f31d5baa04f0ec5a0a09e.tar.gz cru-35ba6a2f719327e2ee3f31d5baa04f0ec5a0a09e.tar.bz2 cru-35ba6a2f719327e2ee3f31d5baa04f0ec5a0a09e.zip |
Impl input method for xim.
Diffstat (limited to 'include/cru/base')
-rw-r--r-- | include/cru/base/Bitmask.h | 4 | ||||
-rw-r--r-- | include/cru/base/StringToNumberConverter.h | 10 |
2 files changed, 8 insertions, 6 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; } diff --git a/include/cru/base/StringToNumberConverter.h b/include/cru/base/StringToNumberConverter.h index 051f44d0..64c29971 100644 --- a/include/cru/base/StringToNumberConverter.h +++ b/include/cru/base/StringToNumberConverter.h @@ -14,15 +14,15 @@ using StringToNumberFlag = Bitmask<details::StringToNumberFlagTag>; struct StringToNumberFlags { constexpr static StringToNumberFlag kAllowLeadingSpaces = - StringToNumberFlag::FromOffset(0); - constexpr static StringToNumberFlag kAllowTrailingSpaces = StringToNumberFlag::FromOffset(1); - constexpr static StringToNumberFlag kAllowTrailingJunk = + constexpr static StringToNumberFlag kAllowTrailingSpaces = StringToNumberFlag::FromOffset(2); - constexpr static StringToNumberFlag kAllowLeadingZeroForInteger = + constexpr static StringToNumberFlag kAllowTrailingJunk = StringToNumberFlag::FromOffset(3); - constexpr static StringToNumberFlag kThrowOnError = + constexpr static StringToNumberFlag kAllowLeadingZeroForInteger = StringToNumberFlag::FromOffset(4); + constexpr static StringToNumberFlag kThrowOnError = + StringToNumberFlag::FromOffset(5); }; template <typename TResult> |