pub struct ExecutionPolicy;Expand description
Policy for validating execution constraints
Implementations§
Source§impl ExecutionPolicy
impl ExecutionPolicy
Sourcepub fn check_interaction_required(
&self,
ctx: &ExecutionContext,
message: impl Into<String>,
next_steps: Vec<String>,
) -> Option<ErrorDetails>
pub fn check_interaction_required( &self, ctx: &ExecutionContext, message: impl Into<String>, next_steps: Vec<String>, ) -> Option<ErrorDetails>
Check if authentication is required and return an error if in non-interactive mode
This helper should be called by commands that need authentication or user interaction. If in non-interactive mode, it returns an AUTH_REQUIRED error with next steps. Otherwise, it allows the command to proceed with interactive prompts.
§Example
use xcom_rs::context::{ExecutionContext, ExecutionPolicy};
let ctx = ExecutionContext::new(true, None, None, None, false);
let policy = ExecutionPolicy::new();
let error = policy.check_interaction_required(
&ctx,
"Authentication required",
vec!["Run 'xcom-rs auth login' first".to_string()]
);
// If error.is_some(), handle the interaction requirement
assert!(error.is_some());Sourcepub fn check_max_cost(
&self,
ctx: &ExecutionContext,
cost: &CostEstimate,
) -> Option<ErrorDetails>
pub fn check_max_cost( &self, ctx: &ExecutionContext, cost: &CostEstimate, ) -> Option<ErrorDetails>
Check if cost exceeds maximum allowed
Sourcepub fn check_daily_budget(
&self,
ctx: &ExecutionContext,
cost: &CostEstimate,
tracker: &BudgetTracker,
) -> Option<ErrorDetails>
pub fn check_daily_budget( &self, ctx: &ExecutionContext, cost: &CostEstimate, tracker: &BudgetTracker, ) -> Option<ErrorDetails>
Check if cost would exceed daily budget
Trait Implementations§
Source§impl Clone for ExecutionPolicy
impl Clone for ExecutionPolicy
Source§fn clone(&self) -> ExecutionPolicy
fn clone(&self) -> ExecutionPolicy
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ExecutionPolicy
impl Debug for ExecutionPolicy
Source§impl Default for ExecutionPolicy
impl Default for ExecutionPolicy
Source§fn default() -> ExecutionPolicy
fn default() -> ExecutionPolicy
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ExecutionPolicy
impl RefUnwindSafe for ExecutionPolicy
impl Send for ExecutionPolicy
impl Sync for ExecutionPolicy
impl Unpin for ExecutionPolicy
impl UnsafeUnpin for ExecutionPolicy
impl UnwindSafe for ExecutionPolicy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more