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§
fn descriptor(&self) -> TransformerDescriptor
fn transform( &self, node: DiffNode, data: &dyn DataAccess, config: &Value, ) -> TransformResult
Provided Methods§
Sourcefn extract(
&self,
_node: &DiffNode,
_aspect: &str,
_data: &dyn DataAccess,
) -> Option<ExtractResult>
fn extract( &self, _node: &DiffNode, _aspect: &str, _data: &dyn DataAccess, ) -> Option<ExtractResult>
Extract user-facing data from a node this transformer modified.