Skip to main content

Transformer

Trait Transformer 

Source
pub trait Transformer: Send + Sync {
    // Required methods
    fn descriptor(&self) -> TransformerDescriptor;
    fn transform(
        &self,
        node: DiffNode,
        data: &dyn DataAccess,
        config: &Value,
    ) -> TransformResult;

    // Provided method
    fn extract(
        &self,
        _node: &DiffNode,
        _aspect: &str,
        _data: &dyn DataAccess,
    ) -> Option<ExtractResult> { ... }
}
Expand description

A plugin that rewrites the completed diff tree.

Matching is declarative via TransformerDescriptor. If a matched node should not be transformed, return TransformResult::Unchanged.

config is the per-transformer JSON value resolved from the host’s DatasetConfig.transformer_config map (keyed by transformer name). Plugins that don’t need configuration can ignore it; the default value for unconfigured transformers is serde_json::Value::Null.

Required Methods§

Source

fn descriptor(&self) -> TransformerDescriptor

Source

fn transform( &self, node: DiffNode, data: &dyn DataAccess, config: &Value, ) -> TransformResult

Provided Methods§

Source

fn extract( &self, _node: &DiffNode, _aspect: &str, _data: &dyn DataAccess, ) -> Option<ExtractResult>

Extract user-facing data from a node this transformer modified.

Implementors§