pub use rill_core::traits::algorithm::{
ActionContext, Algorithm, AlgorithmCategory, AlgorithmMetadata,
};
pub use rill_core::traits::ProcessResult;
use rill_core::traits::ParamValue;
use rill_core::Transcendental;
pub trait ParameterizedAlgorithm<T: Transcendental>: Algorithm<T> {
type Params: Clone + Send + Sync;
fn params(&self) -> &Self::Params;
fn set_params(&mut self, params: Self::Params);
fn set_parameter(&mut self, name: &str, value: ParamValue) -> Result<(), &'static str> {
Err(format!("Parameter '{}' not supported", name).leak())
}
}