pub trait TraitOperator {
type InputType;
type DataType;
type OutputType;
type ReportType;
// Required methods
fn new(opk: &Operator) -> Self;
fn get_kind(&self) -> Operator;
fn prepare_data(
&self,
dsk: &Dataset,
div_index: &DividendIndex,
ds: Arc<Mutex<dyn TraitDataStore>>,
) -> Option<Self::DataType>;
fn compute(
&self,
input: &Self::InputType,
data: &Self::DataType,
div_index: &DividendIndex,
) -> Self::OutputType;
fn report(
&self,
job_id: ID,
input: Self::InputType,
data: &Self::DataType,
output: Self::OutputType,
) -> Self::ReportType;
}Required Associated Types§
Required Methods§
fn new(opk: &Operator) -> Self
fn get_kind(&self) -> Operator
fn prepare_data( &self, dsk: &Dataset, div_index: &DividendIndex, ds: Arc<Mutex<dyn TraitDataStore>>, ) -> Option<Self::DataType>
fn compute( &self, input: &Self::InputType, data: &Self::DataType, div_index: &DividendIndex, ) -> Self::OutputType
fn report( &self, job_id: ID, input: Self::InputType, data: &Self::DataType, output: Self::OutputType, ) -> Self::ReportType
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.