1use crate::Estimator;
4
5pub mod embedding;
6pub mod scalers;
7
8pub trait Transformer<Input, Output> {
10 fn transform(&self, input: &Input) -> Option<Output>;
12}
13
14pub trait FitTransform<Input, Output, T: Transformer<Input, Output>>:
16 Estimator<Input, Estimator = T>
17{
18 fn fit_transform(&self, input: &Input) -> Option<Output> {
21 let transfomer = self.fit(input)?;
22 transfomer.transform(input)
23 }
24}
25
26impl<Input, Output, T: Transformer<Input, Output>, E: Estimator<Input, Estimator = T>>
27 FitTransform<Input, Output, T> for E
28{
29}