xmtp_db/encrypted_store/group/
convert.rs1use super::*;
2use xmtp_proto::ConversionError;
3use xmtp_proto::xmtp::device_sync::group_backup::GroupMembershipStateSave;
4
5impl TryFrom<GroupMembershipStateSave> for GroupMembershipState {
6 type Error = ConversionError;
7 fn try_from(value: GroupMembershipStateSave) -> Result<Self, Self::Error> {
8 let membership_state = match value {
9 GroupMembershipStateSave::Allowed => Self::Allowed,
10 GroupMembershipStateSave::Pending => Self::Pending,
11 GroupMembershipStateSave::Rejected => Self::Rejected,
12 GroupMembershipStateSave::Restored => Self::Restored,
13 GroupMembershipStateSave::PendingRemove => Self::PendingRemove,
14 _ => {
15 return Err(ConversionError::Unspecified("group_membership_state"));
16 }
17 };
18 Ok(membership_state)
19 }
20}
21
22impl From<GroupMembershipState> for GroupMembershipStateSave {
23 fn from(value: GroupMembershipState) -> Self {
24 match value {
25 GroupMembershipState::Allowed => Self::Allowed,
26 GroupMembershipState::Pending => Self::Pending,
27 GroupMembershipState::Rejected => Self::Rejected,
28 GroupMembershipState::Restored => Self::Restored,
29 GroupMembershipState::PendingRemove => Self::PendingRemove,
30 }
31 }
32}