objectstore_types/
auth.rs1use std::collections::HashSet;
7
8use serde::{Deserialize, Serialize};
9
10#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Hash, Copy)]
12pub enum Permission {
13 #[serde(rename = "object.read")]
15 ObjectRead,
16
17 #[serde(rename = "object.write")]
19 ObjectWrite,
20
21 #[serde(rename = "object.delete")]
23 ObjectDelete,
24}
25
26impl Permission {
27 pub fn rwd() -> HashSet<Permission> {
29 HashSet::from([
30 Permission::ObjectRead,
31 Permission::ObjectWrite,
32 Permission::ObjectDelete,
33 ])
34 }
35}
36
37impl std::fmt::Display for Permission {
38 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
39 let s = match self {
40 Self::ObjectRead => "object.read",
41 Self::ObjectWrite => "object.write",
42 Self::ObjectDelete => "object.delete",
43 };
44 f.write_str(s)
45 }
46}