use super::{RoleDefinition, RoleMembership, RoleMembershipKey};
use std::{collections::BTreeMap, ops::Deref};
pub type RoleDefinitionRead<'a> = Box<dyn Deref<Target = BTreeMap<String, RoleDefinition>> + 'a>;
pub type RoleMembershipRead<'a> =
Box<dyn Deref<Target = BTreeMap<RoleMembershipKey, RoleMembership>> + 'a>;
pub trait RoleCatalogGuards {
fn role_definitions(&self) -> RoleDefinitionRead<'_>;
fn role_memberships(&self) -> RoleMembershipRead<'_>;
fn inquiry_role_definitions(&self) -> Result<RoleDefinitionRead<'_>, crate::SQLError> {
Ok(self.role_definitions())
}
}