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
74
75
76
77
78
79
80
81
82
83
84
85
86
|
//! Models about OAuth2 applications.
use super::{
id::UserId,
user::User,
utils::default_true
};
/// Information about a user's application. An application does not necessarily
/// have an associated bot user.
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct ApplicationInfo {
/// The bot user associated with the application. See [`BotApplication`] for
/// more information.
///
/// [`BotApplication`]: struct.BotApplication.html
pub bot: Option<BotApplication>,
/// Indicator of whether the bot is public.
///
/// If a bot is public, anyone may invite it to their [`Guild`]. While a bot
/// is private, only the owner may add it to a guild.
///
/// [`Guild`]: ../guild/struct.Guild.html
#[serde(default = "default_true")]
pub bot_public: bool,
/// Indicator of whether the bot requires an OAuth2 code grant.
pub bot_require_code_grant: bool,
/// A description of the application, assigned by the application owner.
pub description: String,
/// A set of bitflags assigned to the application, which represent gated
/// feature flags that have been enabled for the application.
pub flags: Option<u64>,
/// A hash pointing to the application's icon.
///
/// This is not necessarily equivalent to the bot user's avatar.
pub icon: Option<String>,
/// The unique numeric Id of the application.
pub id: UserId,
/// The name assigned to the application by the application owner.
pub name: String,
/// A list of redirect URIs assigned to the application.
pub redirect_uris: Vec<String>,
/// A list of RPC Origins assigned to the application.
pub rpc_origins: Vec<String>,
/// The given secret to the application.
///
/// This is not equivalent to the application's bot user's token.
pub secret: String,
}
/// Information about an application with an application's bot user.
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct BotApplication {
/// The unique Id of the bot user.
pub id: UserId,
/// A hash of the avatar, if one is assigned.
///
/// Can be used to generate a full URL to the avatar.
pub avatar: Option<String>,
/// Indicator of whether it is a bot.
#[serde(default)]
pub bot: bool,
/// The discriminator assigned to the bot user.
///
/// While discriminators are not unique, the `username#discriminator` pair
/// is.
pub discriminator: u16,
/// The bot user's username.
pub name: String,
/// The token used to authenticate as the bot user.
///
/// **Note**: Keep this information private, as untrusted sources can use it
/// to perform any action with a bot user.
pub token: String,
}
/// Information about the current application and its owner.
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CurrentApplicationInfo {
pub description: String,
pub icon: Option<String>,
pub id: UserId,
pub name: String,
pub owner: User,
#[serde(default)] pub rpc_origins: Vec<String>,
}
|