Skip to main content

BenchmarkingSetup

Trait BenchmarkingSetup 

Source
pub trait BenchmarkingSetup<T, I = ()> {
    // Required methods
    fn components(&self) -> Vec<(BenchmarkParameter, u32, u32)>;
    fn instance(
        &self,
        recording: &mut impl Recording,
        components: &[(BenchmarkParameter, u32)],
        verify: bool,
    ) -> Result<(), BenchmarkError>;

    // Provided methods
    fn test_instance(
        &self,
        components: &[(BenchmarkParameter, u32)],
        on_before_start: &dyn Fn(),
    ) -> Result<(), BenchmarkError> { ... }
    fn unit_test_instance(
        &self,
        components: &[(BenchmarkParameter, u32)],
    ) -> Result<(), BenchmarkError> { ... }
}
Expand description

The required setup for creating a benchmark.

Instance generic parameter is optional and can be used in order to capture unused generics for instantiable pallets.

Required Methods§

Source

fn components(&self) -> Vec<(BenchmarkParameter, u32, u32)>

Return the components and their ranges which should be tested in this benchmark.

Source

fn instance( &self, recording: &mut impl Recording, components: &[(BenchmarkParameter, u32)], verify: bool, ) -> Result<(), BenchmarkError>

Set up the storage, and prepare a closure to run the benchmark.

Provided Methods§

Source

fn test_instance( &self, components: &[(BenchmarkParameter, u32)], on_before_start: &dyn Fn(), ) -> Result<(), BenchmarkError>

Same as instance but passing a closure to run before the benchmark starts.

Source

fn unit_test_instance( &self, components: &[(BenchmarkParameter, u32)], ) -> Result<(), BenchmarkError>

Same as instance but passing a no-op recording for unit tests.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§