use crate::engine::ASTRegApply;
use crate::executor::registry::converter::{ConvertError, MutationConverter};
use crate::executor::registry::converters::ResolveTargetSymbol;
use crate::executor::spec::MutationSpec;
use ryo_analysis::AnalysisContext;
pub struct PluginConverter;
impl PluginConverter {
pub fn new() -> Self {
Self {}
}
}
impl ResolveTargetSymbol for PluginConverter {}
impl Default for PluginConverter {
fn default() -> Self {
Self::new()
}
}
impl MutationConverter for PluginConverter {
fn spec_kinds(&self) -> &'static [&'static str] {
&["PluginTransform"]
}
fn convert_v2(
&self,
_spec: &MutationSpec,
_ctx: &AnalysisContext,
) -> Result<Vec<Box<dyn ASTRegApply>>, ConvertError> {
Err(ConvertError::V2NotSupported)
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_plugin_converter_spec_kinds() {
let converter = PluginConverter::new();
assert_eq!(converter.spec_kinds(), &["PluginTransform"]);
}
}