//! # Group membership information //! //! @author Pierre Hubert use crate::data::user::UserID; use crate::data::group_id::GroupID; #[derive(PartialEq, Eq)] pub enum GroupMembershipLevel { ADMINISTRATOR = 0, MODERATOR = 1, MEMBER = 2, INVITED = 3, PENDING = 4, //When the group membership has not been approved yet VISITOR = 5, //Simple visit } impl GroupMembershipLevel { pub fn to_api(&self) -> String { match self { GroupMembershipLevel::ADMINISTRATOR => "administrator", GroupMembershipLevel::MODERATOR => "moderator", GroupMembershipLevel::MEMBER => "member", GroupMembershipLevel::INVITED => "invited", GroupMembershipLevel::PENDING => "pending", GroupMembershipLevel::VISITOR => "visitor", }.to_string() } } pub struct GroupMember { pub id: u64, pub user_id: UserID, pub group_id: GroupID, pub time_create: u64, pub level: GroupMembershipLevel, pub following: bool }