dpp/data_contract/group/accessors/v0/
mod.rs

1use crate::data_contract::group::GroupRequiredPower;
2use crate::ProtocolError;
3use platform_value::Identifier;
4use std::collections::BTreeMap;
5
6/// Getters for GroupV0
7pub trait GroupV0Getters {
8    /// Returns the member power
9    fn member_power(&self, member_id: Identifier) -> Result<u32, ProtocolError>;
10    /// Returns the members map of the group
11    fn members(&self) -> &BTreeMap<Identifier, u32>;
12
13    /// Returns a mutable reference to the members map of the group
14    fn members_mut(&mut self) -> &mut BTreeMap<Identifier, u32>;
15
16    /// Returns the required power of the group
17    fn required_power(&self) -> GroupRequiredPower;
18}
19
20/// Setters for GroupV0
21pub trait GroupV0Setters {
22    /// Sets the members of the group
23    fn set_members(&mut self, members: BTreeMap<Identifier, u32>);
24
25    /// Inserts or updates a member with a specific power
26    fn set_member_power(&mut self, member_id: Identifier, power: u32);
27
28    /// Removes a member from the group
29    fn remove_member(&mut self, member_id: &Identifier) -> bool;
30
31    /// Sets the required power of the group
32    fn set_required_power(&mut self, required_power: GroupRequiredPower);
33}