//! # Group information //! //! Group visibility level #[allow(non_camel_case_types)] #[derive(Eq, PartialEq, Hash)] pub enum GroupVisibilityLevel { OPEN_GROUP, PRIVATE_GROUP, SECRETE_GROUP, } #[allow(non_camel_case_types)] #[derive(Eq, PartialEq, Hash, Debug, PartialOrd)] pub enum GroupAccessLevel { //Can not even know if the group exists or not NO_ACCESS = 0, //Access to the name of the group only LIMITED_ACCESS = 1, //Can see the posts of the group, but not a member of the group VIEW_ACCESS = 2, //Member access (same as view access but as member) MEMBER_ACCESS = 3, //Can create posts, even if posts creation is restricted MODERATOR_ACCESS = 4, //Can do everything ADMIN_ACCESS = 5, } #[cfg(test)] mod tests { use crate::data::group::GroupAccessLevel; #[test] fn access_level_coherence() { assert!(GroupAccessLevel::NO_ACCESS < GroupAccessLevel::LIMITED_ACCESS); assert!(GroupAccessLevel::LIMITED_ACCESS < GroupAccessLevel::VIEW_ACCESS); assert!(GroupAccessLevel::VIEW_ACCESS < GroupAccessLevel::MEMBER_ACCESS); assert!(GroupAccessLevel::MEMBER_ACCESS < GroupAccessLevel::MODERATOR_ACCESS); assert!(GroupAccessLevel::MODERATOR_ACCESS < GroupAccessLevel::ADMIN_ACCESS); } }