titanium_model/builder/
invite.rs1#[derive(Debug, Clone, serde::Serialize, Default)]
3pub struct CreateInvite {
4 #[serde(skip_serializing_if = "Option::is_none")]
5 pub max_age: Option<u32>,
6 #[serde(skip_serializing_if = "Option::is_none")]
7 pub max_uses: Option<u32>,
8 #[serde(skip_serializing_if = "Option::is_none")]
9 pub temporary: Option<bool>,
10 #[serde(skip_serializing_if = "Option::is_none")]
11 pub unique: Option<bool>,
12 #[serde(skip_serializing_if = "Option::is_none")]
13 pub target_type: Option<u8>,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub target_user_id: Option<crate::Snowflake>,
16 #[serde(skip_serializing_if = "Option::is_none")]
17 pub target_application_id: Option<crate::Snowflake>,
18}
19
20#[derive(Debug, Clone, Default)]
22pub struct CreateInviteBuilder {
23 params: CreateInvite,
24}
25
26impl CreateInviteBuilder {
27 #[must_use]
29 pub fn new() -> Self {
30 Self::default()
31 }
32
33 #[must_use]
35 pub fn max_age(mut self, seconds: u32) -> Self {
36 self.params.max_age = Some(seconds);
37 self
38 }
39
40 #[must_use]
42 pub fn max_uses(mut self, uses: u32) -> Self {
43 self.params.max_uses = Some(uses);
44 self
45 }
46
47 #[must_use]
49 pub fn temporary(mut self, temp: bool) -> Self {
50 self.params.temporary = Some(temp);
51 self
52 }
53
54 #[must_use]
56 pub fn unique(mut self, unique: bool) -> Self {
57 self.params.unique = Some(unique);
58 self
59 }
60
61 #[must_use]
63 pub fn build(self) -> CreateInvite {
64 self.params
65 }
66}