pub struct SearchBudget {
pub max_expansions: Option<usize>,
pub max_duration: Option<Duration>,
}Expand description
Shared search-budget types used across problem models (owner: core). Caller-chosen expansion and/or wall-clock limits for one search.
Both fields are independent optional caps. Default / Self::UNLIMITED means
the solver runs until found, no-path, or an owner-defined hard stop.
Fields§
§max_expansions: Option<usize>Maximum algorithm-defined expansions (see lane visited_nodes docs).
When set, the solver may expand at most this many nodes. Finding the goal on the last allowed expansion still returns found.
max_duration: Option<Duration>Maximum wall-clock duration measured from search start (BudgetWatch::start).
Implementations§
Source§impl SearchBudget
impl SearchBudget
Sourcepub const UNLIMITED: SearchBudget
pub const UNLIMITED: SearchBudget
No expansion or wall-clock limit.
Sourcepub const fn max_expansions(limit: usize) -> SearchBudget
pub const fn max_expansions(limit: usize) -> SearchBudget
Expansion-only budget.
Sourcepub const fn max_duration(limit: Duration) -> SearchBudget
pub const fn max_duration(limit: Duration) -> SearchBudget
Wall-clock-only budget.
Sourcepub const fn with_max_expansions(self, limit: usize) -> SearchBudget
pub const fn with_max_expansions(self, limit: usize) -> SearchBudget
Sets Self::max_expansions, preserving any duration limit.
Sourcepub const fn with_max_duration(self, limit: Duration) -> SearchBudget
pub const fn with_max_duration(self, limit: Duration) -> SearchBudget
Sets Self::max_duration, preserving any expansion limit.
Sourcepub const fn is_unlimited(&self) -> bool
pub const fn is_unlimited(&self) -> bool
Whether both caps are unset.
Trait Implementations§
Source§impl Clone for SearchBudget
impl Clone for SearchBudget
Source§fn clone(&self) -> SearchBudget
fn clone(&self) -> SearchBudget
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SearchBudget
Source§impl Debug for SearchBudget
impl Debug for SearchBudget
Source§impl Default for SearchBudget
impl Default for SearchBudget
Source§fn default() -> SearchBudget
fn default() -> SearchBudget
impl Eq for SearchBudget
Source§impl PartialEq for SearchBudget
impl PartialEq for SearchBudget
impl StructuralPartialEq for SearchBudget
Auto Trait Implementations§
impl Freeze for SearchBudget
impl RefUnwindSafe for SearchBudget
impl Send for SearchBudget
impl Sync for SearchBudget
impl Unpin for SearchBudget
impl UnsafeUnpin for SearchBudget
impl UnwindSafe for SearchBudget
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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> ⓘ
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> ⓘ
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