eln_plugin_sdk/
permissions.rs1use bitflags::bitflags;
11
12bitflags! {
13 #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
14 pub struct Permissions: u32 {
15 const READ = 1 << 0;
16 const WRITE = 1 << 1;
17 const MODIFY = 1 << 2;
18 }
19}
20
21impl Permissions {
22 pub const ADMIN: Self = Self::READ
23 .union(Self::WRITE)
24 .union(Self::MODIFY);
25}
26
27#[cfg(test)]
28mod tests {
29 use super::*;
30
31 #[test]
32 fn admin_is_read_write_modify() {
33 assert!(Permissions::ADMIN.contains(Permissions::READ));
34 assert!(Permissions::ADMIN.contains(Permissions::WRITE));
35 assert!(Permissions::ADMIN.contains(Permissions::MODIFY));
36 assert_eq!(
37 Permissions::ADMIN,
38 Permissions::READ | Permissions::WRITE | Permissions::MODIFY
39 );
40 }
41
42 #[test]
43 fn empty_grants_nothing() {
44 let p = Permissions::empty();
45 assert!(!p.contains(Permissions::READ));
46 assert!(!p.contains(Permissions::WRITE));
47 assert!(!p.contains(Permissions::MODIFY));
48 }
49}