light_curve_feature/
feature.rs1use crate::evaluator::*;
2use crate::extractor::FeatureExtractor;
3use crate::features::*;
4use crate::float_trait::Float;
5use crate::time_series::TimeSeries;
6use crate::transformers::Transformer;
7
8use enum_dispatch::enum_dispatch;
9use std::fmt::Debug;
10
11#[enum_dispatch(FeatureEvaluator<T>, FeatureNamesDescriptionsTrait, EvaluatorInfoTrait)]
15#[derive(Clone, Debug, Deserialize, Serialize, JsonSchema)]
16#[serde(bound = "T: Float")]
17#[non_exhaustive]
18pub enum Feature<T>
19where
20 T: Float,
21{
22 FeatureExtractor(FeatureExtractor<T, Self>),
24 Amplitude,
26 AndersonDarlingNormal,
27 Bins(Bins<T, Self>),
28 BazinFit,
29 BeyondNStd(BeyondNStd<T>),
30 Cusum,
31 Duration,
32 Eta,
33 EtaE,
34 ExcessVariance,
35 InterPercentileRange,
36 Kurtosis,
37 LinearFit,
38 LinearTrend,
39 LinexpFit,
40 MagnitudePercentageRatio,
41 MaximumSlope,
42 MaximumTimeInterval,
43 MinimumTimeInterval,
44 Mean,
45 MeanVariance,
46 Median,
47 MedianAbsoluteDeviation,
48 MedianBufferRangePercentage(MedianBufferRangePercentage<T>),
49 ObservationCount,
50 OtsuSplit,
51 PercentAmplitude,
52 PercentDifferenceMagnitudePercentile,
53 Periodogram(Periodogram<T, Self>),
54 _PeriodogramPeaks,
55 ReducedChi2,
56 Roms,
57 Skew,
58 StandardDeviation,
59 StetsonK,
60 TimeMean,
61 TimeStandardDeviation,
62 Transformed(Transformed<T, Self, Transformer<T>>),
63 VillarFit,
64 WeightedMean,
65}