Skip to main content

ExtensionProvider

Trait ExtensionProvider 

Source
pub trait ExtensionProvider {
    // Required methods
    fn identity(
        &self,
        pins: &[PluginPin],
        feature_type: &str,
    ) -> Result<String, String>;
    fn execute(
        &self,
        pins: &[PluginPin],
        ctx: &FeatureContext<'_>,
    ) -> FeatureResult;

    // Provided method
    fn execute_annotation(
        &self,
        _pins: &[PluginPin],
        annotation: &PmiAnnotation,
        _context: &PmiContext<'_>,
    ) -> Result<PluginAnnotationOutput, String> { ... }
}

Required Methods§

Source

fn identity( &self, pins: &[PluginPin], feature_type: &str, ) -> Result<String, String>

Source

fn execute(&self, pins: &[PluginPin], ctx: &FeatureContext<'_>) -> FeatureResult

Provided Methods§

Source

fn execute_annotation( &self, _pins: &[PluginPin], annotation: &PmiAnnotation, _context: &PmiContext<'_>, ) -> Result<PluginAnnotationOutput, String>

Separate typed annotation domain; never dispatched as a solid feature.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§