aboutsummaryrefslogtreecommitdiff
path: root/src/field/utils/user_flags.rs
blob: 06ac5db9adfb3ff700592a9ab8e05c88ef2b3b3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//! 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;

#[must_use]
pub fn is_away(bits: u32) -> bool {
    bits & AWAY != 0
}

#[must_use]
pub fn is_admin_or_disconnected(bits: u32) -> bool {
    bits & ADMIN_OR_DISCONNECTED != 0
}

#[must_use]
pub fn refuses_private_messages(bits: u32) -> bool {
    bits & REFUSES_PRIVATE_MESSAGES != 0
}

#[must_use]
pub fn refuses_private_chat(bits: u32) -> bool {
    bits & REFUSES_PRIVATE_CHAT != 0
}