pub struct BudgetConfig {
pub time_limit: Option<Duration>,
pub token_limit: Option<u32>,
pub cost_limit: Option<f64>,
pub strategy: BudgetStrategy,
pub adapt_threshold: f64,
}Expand description
Budget configuration for protocol execution
Fields§
§time_limit: Option<Duration>Maximum execution time
token_limit: Option<u32>Maximum tokens to consume
cost_limit: Option<f64>Maximum cost in USD
strategy: BudgetStrategyStrategy when approaching budget limits
adapt_threshold: f64Percentage of budget at which to start adapting (0.0-1.0)
Implementations§
Source§impl BudgetConfig
impl BudgetConfig
Sourcepub fn with_tokens(limit: u32) -> Self
pub fn with_tokens(limit: u32) -> Self
Create a token-limited budget
Sourcepub fn with_strategy(self, strategy: BudgetStrategy) -> Self
pub fn with_strategy(self, strategy: BudgetStrategy) -> Self
Set budget strategy
Sourcepub fn is_constrained(&self) -> bool
pub fn is_constrained(&self) -> bool
Check if any limits are set
Sourcepub fn parse(budget_str: &str) -> Result<Self, BudgetParseError>
pub fn parse(budget_str: &str) -> Result<Self, BudgetParseError>
Parse a budget string like “10s”, “1000t”, “$0.50”
Trait Implementations§
Source§impl Clone for BudgetConfig
impl Clone for BudgetConfig
Source§fn clone(&self) -> BudgetConfig
fn clone(&self) -> BudgetConfig
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 BudgetConfig
impl Debug for BudgetConfig
Source§impl Default for BudgetConfig
impl Default for BudgetConfig
Source§impl<'de> Deserialize<'de> for BudgetConfig
impl<'de> Deserialize<'de> for BudgetConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for BudgetConfig
impl RefUnwindSafe for BudgetConfig
impl Send for BudgetConfig
impl Sync for BudgetConfig
impl Unpin for BudgetConfig
impl UnwindSafe for BudgetConfig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more