Tunable

Struct Tunable 

Source
pub struct Tunable<K, Inputs, Output> { /* private fields */ }
Expand description

A tunable wraps a function that can be included in multiple groups.

When a tunable is part of multiple groups, it will be autotuned when one of those groups is prioritized.

Implementations§

Source§

impl<K, Inputs, Output> Tunable<K, Inputs, Output>

Source

pub fn new<Marker>(function: impl IntoTuneFn<Inputs, Output, Marker>) -> Self

Create a new tunable based on a function.

Source

pub fn group<F: Fn(&K) -> i8 + 'static>( self, group: &TuneGroup<K>, priority: F, ) -> Self

Tag the current tunable as part of the given group. group is a tuning group with a corresponding priority function. priority is the intra-group priority, applied after the group priority to further sort entries

Groups are tuned in order of priority, and then each entry in the group is tuned based on the intra-group priority. Negative priorities ensure the entry is never tuned for this key.

Auto Trait Implementations§

§

impl<K, Inputs, Output> Freeze for Tunable<K, Inputs, Output>

§

impl<K, Inputs, Output> !RefUnwindSafe for Tunable<K, Inputs, Output>

§

impl<K, Inputs, Output> !Send for Tunable<K, Inputs, Output>

§

impl<K, Inputs, Output> !Sync for Tunable<K, Inputs, Output>

§

impl<K, Inputs, Output> Unpin for Tunable<K, Inputs, Output>

§

impl<K, Inputs, Output> !UnwindSafe for Tunable<K, Inputs, Output>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V