pub(crate) trait ErasedPolicy {
// Required methods
fn get_enforced_erased(
&self,
organization_id: OrganizationId,
policies: &[Policy],
organization_user_policy_contexts: &[OrganizationUserPolicyContext],
) -> PolicyDecisionErased;
fn get_all_enforced_erased(
&self,
policies: &[Policy],
organization_user_policy_contexts: &[OrganizationUserPolicyContext],
) -> Vec<PolicyDecisionErased>;
}Expand description
Object-safe erasure of PolicyDefinition.
PolicyDefinition cannot be used as a trait object because it has an associated
Data type. This trait hides that type behind the
serializable PolicyDataType, allowing evaluation of a dyn PolicyDefinition.
Required Methods§
Sourcefn get_enforced_erased(
&self,
organization_id: OrganizationId,
policies: &[Policy],
organization_user_policy_contexts: &[OrganizationUserPolicyContext],
) -> PolicyDecisionErased
fn get_enforced_erased( &self, organization_id: OrganizationId, policies: &[Policy], organization_user_policy_contexts: &[OrganizationUserPolicyContext], ) -> PolicyDecisionErased
Type erased variant of EnforceablePolicy::get_enforced.
Sourcefn get_all_enforced_erased(
&self,
policies: &[Policy],
organization_user_policy_contexts: &[OrganizationUserPolicyContext],
) -> Vec<PolicyDecisionErased>
fn get_all_enforced_erased( &self, policies: &[Policy], organization_user_policy_contexts: &[OrganizationUserPolicyContext], ) -> Vec<PolicyDecisionErased>
Type erased variant of EnforceablePolicy::get_all_enforced.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".