pub struct TuneGroup<K> { /* private fields */ }Expand description
A priority bucket for tunables, computed from the autotune key.
Higher-priority groups are autotuned first; once any tunable in a group returns a valid result, no later groups are tried.
Implementations§
Source§impl<K> TuneGroup<K>
impl<K> TuneGroup<K>
Sourcepub fn new(name: &str, f: impl Fn(&K) -> i8 + Send + Sync + 'static) -> Self
pub fn new(name: &str, f: impl Fn(&K) -> i8 + Send + Sync + 'static) -> Self
Create a new group based on a priority function.
A member’s own priority (Tunable::group) is a cutoff: the highest level is the
round, and the levels under it are fallbacks reached as each round fails.
Sourcepub fn ordered(name: &str, f: impl Fn(&K) -> i8 + Send + Sync + 'static) -> Self
pub fn ordered(name: &str, f: impl Fn(&K) -> i8 + Send + Sync + 'static) -> Self
Create a group whose member priorities order one round rather than cut it off: every member with a non-negative priority is in the batch, best first.
The batch is benchmarked in that order and the short circuit ends it at the first candidate under the bounds’ time limit, so the priority decides how much of the group is compiled rather than which of it can win. The batch costs its whole membership without a bounds generator, on wasm, or with the short circuit disabled.
The batch sits at the priority of its best member, so a cutoff group at the same group priority interleaves with it by priority.
Trait Implementations§
Auto Trait Implementations§
impl<K> !RefUnwindSafe for TuneGroup<K>
impl<K> !UnwindSafe for TuneGroup<K>
impl<K> Freeze for TuneGroup<K>
impl<K> Send for TuneGroup<K>
impl<K> Sync for TuneGroup<K>
impl<K> Unpin for TuneGroup<K>
impl<K> UnsafeUnpin for TuneGroup<K>
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<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> ErasedDestructor for Twhere
T: 'static,
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> ⓘ
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