pub trait DriverAdapter {
// Required methods
fn create(
&self,
owner: UserId,
name: GroupName,
) -> Result<GroupRevision, String>;
fn rename(
&self,
actor: UserId,
group: GroupId,
name: GroupName,
) -> Result<GroupRevision, String>;
fn set_user_role(
&self,
actor: UserId,
group: GroupId,
user: UserId,
role: Option<GroupRole>,
) -> Result<GroupRevision, String>;
fn set_model_membership(
&self,
actor: UserId,
group: GroupId,
model: ModelId,
present: bool,
) -> Result<GroupRevision, String>;
fn get(&self, group: GroupId) -> Result<Option<Group>, String>;
fn groups_for_user(&self, user: UserId) -> Result<Vec<GroupId>, String>;
fn groups_for_model(&self, model: ModelId) -> Result<Vec<GroupId>, String>;
fn memberships(
&self,
user: UserId,
model: ModelId,
) -> Result<GroupMemberships, String>;
fn restart(&mut self) -> Result<(), String>;
fn concurrency_observation(
&mut self,
) -> Result<ConcurrencyObservation, String>;
fn malformed_observation(&mut self) -> Result<MalformedObservation, String>;
fn reorg_observation(&mut self) -> Result<ReorgObservation, String>;
}Required Methods§
fn create( &self, owner: UserId, name: GroupName, ) -> Result<GroupRevision, String>
fn rename( &self, actor: UserId, group: GroupId, name: GroupName, ) -> Result<GroupRevision, String>
fn set_user_role( &self, actor: UserId, group: GroupId, user: UserId, role: Option<GroupRole>, ) -> Result<GroupRevision, String>
fn set_model_membership( &self, actor: UserId, group: GroupId, model: ModelId, present: bool, ) -> Result<GroupRevision, String>
fn get(&self, group: GroupId) -> Result<Option<Group>, String>
fn groups_for_user(&self, user: UserId) -> Result<Vec<GroupId>, String>
fn groups_for_model(&self, model: ModelId) -> Result<Vec<GroupId>, String>
fn memberships( &self, user: UserId, model: ModelId, ) -> Result<GroupMemberships, String>
fn restart(&mut self) -> Result<(), String>
fn concurrency_observation(&mut self) -> Result<ConcurrencyObservation, String>
fn malformed_observation(&mut self) -> Result<MalformedObservation, String>
fn reorg_observation(&mut self) -> Result<ReorgObservation, String>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".