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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
use enumflags2::{bitflags, BitFlags};
use serde::{Deserialize, Serialize};
use serde_repr::{Deserialize_repr, Serialize_repr};
use super::guild::Integration;
#[bitflags]
#[repr(u64)]
#[derive(Debug, Clone, Copy)]
pub enum UserFlags {
// None = 0 << 0,
DiscordEmployee = 1 << 0,
PartneredServerOwner = 1 << 1,
HypesquadEvents = 1 << 2,
BugHunterLevel1 = 1 << 3,
HouseBravery = 1 << 6,
HouseBrilliance = 1 << 7,
HouseBalance = 1 << 8,
EarlySupporter = 1 << 9,
TeamUser = 1 << 10,
BugHunterLevel2 = 1 << 14,
VerifiedBot = 1 << 16,
EarlyVerifiedBotDeveloper = 1 << 17,
DiscordCertifiedModerator = 1 << 18,
}
#[derive(Debug, Clone, Deserialize_repr, Serialize_repr)]
#[repr(u8)]
pub enum PremiumTypes {
None = 0,
NitroClassic = 1,
Nitro = 2,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
/// Represents a User within Discord
pub struct User {
pub id: String,
pub username: String,
pub discriminator: String,
pub avatar: Option<String>,
pub bot: Option<bool>,
pub system: Option<bool>,
pub mfa_enabled: Option<bool>,
pub locale: Option<String>,
pub verified: Option<bool>,
pub email: Option<String>,
pub flags: Option<BitFlags<UserFlags>>,
pub premium_type: Option<PremiumTypes>,
pub public_flags: Option<BitFlags<UserFlags>>,
}
#[derive(Debug, Clone, Deserialize_repr, Serialize_repr)]
#[repr(u8)]
pub enum VisibilityTypes {
None = 0,
Everyone = 1,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
/// The connection object that the user has attached.
pub struct Connection {
pub id: String,
pub name: String,
#[serde(rename = "type")]
pub type_: String,
pub revoked: Option<bool>,
pub integrations: Option<Vec<Integration>>,
pub verified: bool,
pub friend_sync: bool,
pub show_activity: bool,
pub visibility: VisibilityTypes,
}
|