p2panda_auth/group/
action.rs1use crate::Access;
4use crate::group::GroupMember;
5
6#[derive(Clone, Debug, PartialEq)]
8pub enum GroupAction<ID, C> {
9 Create {
10 initial_members: Vec<(GroupMember<ID>, Access<C>)>,
11 },
12 Add {
13 member: GroupMember<ID>,
14 access: Access<C>,
15 },
16 Remove {
17 member: GroupMember<ID>,
18 },
19 Promote {
20 member: GroupMember<ID>,
21 access: Access<C>,
22 },
23 Demote {
24 member: GroupMember<ID>,
25 access: Access<C>,
26 },
27}
28
29impl<ID, C> GroupAction<ID, C>
30where
31 ID: Copy,
32{
33 pub fn is_create(&self) -> bool {
35 matches!(self, GroupAction::Create { .. })
36 }
37}