casbin/rbac/
role_manager.rs1use crate::Result;
2
3pub type MatchingFn = fn(&str, &str) -> bool;
4
5pub trait RoleManager: Send + Sync {
6 fn clear(&mut self);
7 fn add_link(&mut self, name1: &str, name2: &str, domain: Option<&str>);
8 fn matching_fn(
9 &mut self,
10 role_matching_fn: Option<MatchingFn>,
11 domain_matching_fn: Option<MatchingFn>,
12 );
13 fn delete_link(
14 &mut self,
15 name1: &str,
16 name2: &str,
17 domain: Option<&str>,
18 ) -> Result<()>;
19 fn has_link(&self, name1: &str, name2: &str, domain: Option<&str>) -> bool;
20 fn get_roles(&self, name: &str, domain: Option<&str>) -> Vec<String>;
21 fn get_users(&self, name: &str, domain: Option<&str>) -> Vec<String>;
22}