use crate::_internal::ast::identifiers::ObjectId;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct RoleState {
pub id: ObjectId, pub can_login: bool,
pub is_superuser: bool,
pub inherits: bool,
pub member_of: Vec<ObjectId>, pub can_administer_membership: Vec<ObjectId>,
pub can_inherit_from: Vec<ObjectId>,
pub can_set_role_to: Vec<ObjectId>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct RoleMembershipGrantor {
pub member: ObjectId,
pub role: ObjectId,
pub grantor: ObjectId,
}
#[derive(Debug, Clone, PartialEq)]
pub enum RoleOverlay {
Present(RoleState),
Dropped,
}