criterion

Struct BenchmarkId

Source
pub struct BenchmarkId { /* private fields */ }
Expand description

Simple structure representing an ID for a benchmark. The ID must be unique within a benchmark group.

Implementations§

Source§

impl BenchmarkId

Source

pub fn new<S: Into<String>, P: Display>( function_name: S, parameter: P, ) -> BenchmarkId

Construct a new benchmark ID from a string function name and a parameter value.

Note that the parameter value need not be the same as the parameter passed to your actual benchmark. For instance, you might have a benchmark that takes a 1MB string as input. It would be impractical to embed the whole string in the benchmark ID, so instead your parameter value might be a descriptive string like “1MB Alphanumeric”.

§Examples
// A basic benchmark ID is typically constructed from a constant string and a simple
// parameter
let basic_id = BenchmarkId::new("my_id", 5);

// The function name can be a string
let function_name = "test_string".to_string();
let string_id = BenchmarkId::new(function_name, 12);

// Benchmark IDs are passed to benchmark groups:
let mut criterion = Criterion::default();
let mut group = criterion.benchmark_group("My Group");
// Generate a very large input
let input : String = ::std::iter::repeat("X").take(1024 * 1024).collect();

// Note that we don't have to use the input as the parameter in the ID
group.bench_with_input(BenchmarkId::new("Test long string", "1MB X's"), &input, |b, i| {
    b.iter(|| i.len())
});
Source

pub fn from_parameter<P: Display>(parameter: P) -> BenchmarkId

Construct a new benchmark ID from just a parameter value. Use this when benchmarking a single function with a variety of different inputs.

Trait Implementations§

Source§

impl Clone for BenchmarkId

Source§

fn clone(&self) -> BenchmarkId

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Hash for BenchmarkId

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for BenchmarkId

Source§

fn eq(&self, other: &BenchmarkId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for BenchmarkId

Source§

impl StructuralPartialEq for BenchmarkId

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize = _

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 48 bytes