diff options
Diffstat (limited to 'src/field/utils/user_flags.rs')
| -rw-r--r-- | src/field/utils/user_flags.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/field/utils/user_flags.rs b/src/field/utils/user_flags.rs new file mode 100644 index 0000000..6c79e8b --- /dev/null +++ b/src/field/utils/user_flags.rs @@ -0,0 +1,22 @@ +//! This module contains utilities to read the data in a UserFlags bitmap. + +const AWAY: u32 = 0b0001; +const ADMIN_OR_DISCONNECTED: u32 = 0b0010; +const REFUSES_PRIVATE_MESSAGES: u32 = 0b0100; +const REFUSES_PRIVATE_CHAT: u32 = 0b1000; + +pub fn is_away(bits: u32) -> bool { + bits & AWAY != 0 +} + +pub fn is_admin_or_disconnected(bits: u32) -> bool { + bits & ADMIN_OR_DISCONNECTED != 0 +} + +pub fn refuses_private_messages(bits: u32) -> bool { + bits & REFUSES_PRIVATE_MESSAGES != 0 +} + +pub fn refuses_private_chat(bits: u32) -> bool { + bits & REFUSES_PRIVATE_CHAT != 0 +} |