pub struct FaultPolicy { /* private fields */ }Expand description
The validated retry, backoff, skip, and rollback policy for one step.
The runnable example lives in the oxide-batch facade documentation,
because the supported import path is oxide_batch.
Implementations§
Source§impl FaultPolicy
impl FaultPolicy
Sourcepub fn new(
classifier: FaultClassifier,
retry_limit: RetryLimit,
retry_state_limit: RetryStateLimit,
skip_limit: SkipLimit,
backoff: BackoffPolicy,
) -> Result<Self, FaultPolicyError>
pub fn new( classifier: FaultClassifier, retry_limit: RetryLimit, retry_state_limit: RetryStateLimit, skip_limit: SkipLimit, backoff: BackoffPolicy, ) -> Result<Self, FaultPolicyError>
Validates and constructs the step policy.
§Errors
Rejects a retry rule that no retry limit can ever satisfy, so a statically impossible combination cannot reach the runtime.
Sourcepub const fn classifier(&self) -> &FaultClassifier
pub const fn classifier(&self) -> &FaultClassifier
Borrows the classifier.
Sourcepub const fn retry_limit(&self) -> RetryLimit
pub const fn retry_limit(&self) -> RetryLimit
Returns the configured retry limit.
Sourcepub const fn retry_state_limit(&self) -> RetryStateLimit
pub const fn retry_state_limit(&self) -> RetryStateLimit
Returns the unresolved retry-key capacity for one step.
Sourcepub const fn skip_limit(&self) -> SkipLimit
pub const fn skip_limit(&self) -> SkipLimit
Returns the aggregate skip limit.
Sourcepub const fn backoff(&self) -> BackoffPolicy
pub const fn backoff(&self) -> BackoffPolicy
Returns the backoff schedule.
Sourcepub fn requires_commit_safe_skip(&self) -> bool
pub fn requires_commit_safe_skip(&self) -> bool
Returns whether any rule accepts a commit-safe skip.
Sourcepub fn validate_capabilities(
&self,
supports_atomic_skip: bool,
) -> Result<(), FaultPolicyError>
pub fn validate_capabilities( &self, supports_atomic_skip: bool, ) -> Result<(), FaultPolicyError>
Verifies the selected resource can honour the policy before user work.
§Errors
Returns FaultPolicyError::CommitSafeSkipUnsupported when a rule
accepts a commit-safe skip that the transaction capability cannot
commit atomically.
Sourcepub fn decide(
&self,
fault: &FaultDescriptor,
evidence: FaultEvidence,
) -> FaultDecision
pub fn decide( &self, fault: &FaultDescriptor, evidence: FaultEvidence, ) -> FaultDecision
Returns the authoritative decision for one fault.
The decision is a pure function of the policy, the framework-owned descriptor, and framework evidence, so it is reproducible after a restart.
Trait Implementations§
Source§impl Clone for FaultPolicy
impl Clone for FaultPolicy
Source§fn clone(&self) -> FaultPolicy
fn clone(&self) -> FaultPolicy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more