pub trait ModuleMiddleware: Debug + Send + Sync {
    // Required method
    fn generate_function_middleware(
        &self,
        local_function_index: LocalFunctionIndex,
    ) -> Box<dyn FunctionMiddleware>;

    // Provided method
    fn transform_module_info(
        &self,
        _: &mut ModuleInfo,
    ) -> Result<(), MiddlewareError> { ... }
}
Expand description

A shared builder for function middlewares.

Required Methods§

source

fn generate_function_middleware( &self, local_function_index: LocalFunctionIndex, ) -> Box<dyn FunctionMiddleware>

Generates a FunctionMiddleware for a given function.

Here we generate a separate object for each function instead of executing directly on per-function operators, in order to enable concurrent middleware application. Takes immutable &self because this function can be called concurrently from multiple compilation threads.

Provided Methods§

source

fn transform_module_info( &self, _: &mut ModuleInfo, ) -> Result<(), MiddlewareError>

Transforms a ModuleInfo struct in-place. This is called before application on functions begins.

Implementors§