referrerpolicy=no-referrer-when-downgrade

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", so this trait is not object safe.

Implementors§