pub trait DelegationManager {
// Required methods
fn create_delegation(
&mut self,
delegation: Delegation,
) -> Result<(), String>;
fn revoke_delegation(
&mut self,
delegation_id: &str,
by: &str,
) -> Result<(), String>;
fn get_delegations_for(&self, user_or_role: &str) -> Vec<Delegation>;
fn audit_delegation(&mut self, delegation_id: &str, entry: &str);
}