cyfs_core/im/
friend_property.rs1use crate::CoreObjectType;
2use cyfs_base::*;
3use serde::Serialize;
4
5#[derive(Clone, Default, ProtobufEmptyEncode, ProtobufEmptyDecode, Serialize)]
6pub struct FriendPropertyDescContent {}
7
8impl DescContent for FriendPropertyDescContent {
9 fn obj_type() -> u16 {
10 CoreObjectType::FriendProperty as u16
11 }
12
13 fn format(&self) -> u8 {
14 OBJECT_CONTENT_CODEC_FORMAT_PROTOBUF
15 }
16
17 fn debug_info() -> String {
18 String::from("FriendPropertyDescContent")
19 }
20
21 type OwnerType = Option<ObjectId>;
22 type AreaType = SubDescNone;
23 type AuthorType = Option<ObjectId>;
24 type PublicKeyType = SubDescNone;
25}
26
27type FriendPropertyType = NamedObjType<FriendPropertyDescContent, EmptyProtobufBodyContent>;
28type FriendPropertyBuilder = NamedObjectBuilder<FriendPropertyDescContent, EmptyProtobufBodyContent>;
29
30pub type FriendPropertyId = NamedObjectId<FriendPropertyType>;
31pub type FriendProperty = NamedObjectBase<FriendPropertyType>;
32
33pub trait FriendPropertyObject {
35 fn create(owner: PeopleId) -> Self;
36}
37
38impl FriendPropertyObject for FriendProperty {
39 fn create(owner: PeopleId) -> Self {
40 FriendPropertyBuilder::new(
41 FriendPropertyDescContent {},
42 EmptyProtobufBodyContent {},
43 )
44 .owner(owner.into())
45 .no_create_time()
46 .build()
47 }
48}