pub mod all;
pub mod custom;
pub mod dept;
pub mod dept_and_sub;
pub mod self_mode;
use crate::data_scope::context::DataScopeContext;
use crate::data_scope::error::DataScopeError;
use crate::data_scope::rule::DataScopeRule;
use crate::repository::WhereCondition;
use async_trait::async_trait;
#[async_trait]
pub trait ModeEvaluator: Send + Sync {
async fn evaluate(
&self,
ctx: &DataScopeContext,
rule: &DataScopeRule,
) -> Result<Vec<WhereCondition>, DataScopeError>;
}