cyfs_core/
coreobj.rs

1use int_enum::IntEnum;
2
3#[derive(Clone, Eq, Copy, PartialEq, Debug, IntEnum)]
4#[repr(u16)]
5pub enum CoreObjectType {
6    // ZONE
7    Zone = 32,
8
9    // admin control
10    Admin = 33,
11
12    // 基于object的存储
13    Storage = 40,
14
15    // 文本对象
16    Text = 41,
17
18    // 通讯录
19    // FriendList = 130,
20    FriendOption = 131,
21    FriendProperty = 132,
22
23    //meta相关
24    BlockV1 = 300,
25    MetaProto = 301,
26    MetaMinerGroup = 302,
27    BlockV2 = 303,
28
29    // Trans
30    TransContext = 350,
31    // app相关
32    DecApp = 400,
33    AppStatus = 401,
34    AppList = 402,
35    // PutApp = 403,
36    // RemoveApp = 404,
37
38    // app相关,这两个对象现在只有在ts里实现,ts和网页中用到。rust里暂时用不到
39    AppStoreList = 405,
40    AppExtInfo = 406,
41
42    // 默认app
43    DefaultAppList = 407,
44    SetDefaultApp = 408,
45
46    // AppLocalStatus = 409,
47    //App控制对象
48    AppCmd = 410,
49    //AppLocalStatusEx = 411,
50    AppLocalStatus = 411,
51    //AppListEx = 412,
52    AppCmdList = 413,
53    AppSetting = 414,
54    AppManagerAction = 415,
55    AppLocalList = 416,
56
57    // 钱包相关对象
58    NFTList = 500,
59
60    // Perf
61    PerfOperation = 600,
62
63    // IM通用对象
64    AddFriend = 1001,
65    Msg = 1003,
66    RemoveFriend = 1004,
67
68    // 错误
69    // cyfs_base::OBJECT_TYPE_CORE_END
70    ErrObjType = 32767,
71}
72
73impl Into<u16> for CoreObjectType {
74    fn into(self) -> u16 {
75        self as u16
76    }
77}
78
79impl From<u16> for CoreObjectType {
80    fn from(value: u16) -> Self {
81        match Self::from_int(value) {
82            Ok(v) => v,
83            Err(e) => {
84                error!("unknown CoreObjectType value: {} {}", value, e);
85                Self::ErrObjType
86            }
87        }
88    }
89}
90
91impl CoreObjectType {
92    pub fn as_u16(&self) -> u16 {
93        let v: u16 = self.clone().into();
94        v
95    }
96}