Skip to main content

mirai/message/
element.rs

1use serde::Deserialize;
2
3use crate::Target;
4
5#[derive(Deserialize, Debug, Clone)]
6pub enum Permission {
7    #[serde(rename = "ADMINISTRATOR")]
8    Administrator,
9
10    #[serde(rename = "OWNER")]
11    Owner,
12
13    #[serde(rename = "MEMBER")]
14    Member,
15}
16
17#[derive(Debug, Clone, Deserialize)]
18pub struct GroupMember {
19    pub(crate) id: Target,
20    #[serde(rename = "memberName")]
21    pub(crate) member_name: String,
22    pub(crate) permission: Permission,
23    pub(crate) group: Group,
24}
25
26impl GroupMember {
27    pub fn id(&self) -> Target {
28        self.id
29    }
30
31    pub fn member_name(&self) -> String {
32        self.member_name.clone()
33    }
34
35    pub fn permission(&self) -> Permission {
36        self.permission.clone()
37    }
38
39    pub fn group(&self) -> Group {
40        self.group.clone()
41    }
42}
43
44#[derive(Debug, Clone, Deserialize)]
45pub struct FriendMember {
46    pub(crate) id: Target,
47    #[serde(rename = "nickname")]
48    pub(crate) nick_name: String,
49    pub(crate) remark: String,
50}
51
52impl FriendMember {
53    pub fn id(&self) -> Target {
54        self.id
55    }
56
57    pub fn nick_name(&self) -> String {
58        self.nick_name.clone()
59    }
60
61    pub fn remark(&self) -> String {
62        self.remark.clone()
63    }
64}
65
66#[derive(Debug, Clone, Deserialize)]
67pub struct Group {
68    pub(crate) id: Target,
69    pub(crate) name: String,
70    pub(crate) permission: Permission,
71}
72
73impl Group {
74    pub fn id(&self) -> Target {
75        self.id
76    }
77
78    pub fn name(&self) -> String {
79        self.name.clone()
80    }
81
82    pub fn permission(&self) -> Permission {
83        self.permission.clone()
84    }
85}