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.

Object Safety§

This trait is not object safe.

Implementors§