aboutsummaryrefslogtreecommitdiff
path: root/src/field/utils/user_flags.rs
diff options
context:
space:
mode:
authorRuben Beltran del Rio <git@r.bdr.sh>2025-02-09 22:44:21 +0100
committerRuben Beltran del Rio <git@r.bdr.sh>2025-02-09 22:44:21 +0100
commitc402a8923d2e89607a007f46ee4cde15714d746d (patch)
tree597f0e436cac0ec2dda2eb8437cfb57de6c95a82 /src/field/utils/user_flags.rs
parent48408b9e42eaeeaf0944f9a37f7882ba9ddc7f19 (diff)
Restart with fields module
Diffstat (limited to 'src/field/utils/user_flags.rs')
-rw-r--r--src/field/utils/user_flags.rs22
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
+}