strafe_trait/
conclusion.rs1use std::{any::TypeId, fmt::Debug};
2
3use crate::{
4 AccurateModel, Concept, InaccurateModel, InsignificantCoefficient, NoSignificantFeature,
5 Normal, NormalResiduals, NotNormal, NotNormalResiduals, SignificantCoefficient,
6 SomeSignficantFeature,
7};
8
9pub trait Conclusion: Debug + Concept {
10 fn to_comparator(&self) -> TypeId
11 where
12 Self: 'static,
13 {
14 self.comparator()
15 }
16}
17
18impl dyn Conclusion {
19 pub fn is<C: 'static + Concept>(&self) -> bool {
20 self.comparator() == C::new().comparator()
21 }
22}
23
24impl Conclusion for Normal {}
25
26impl Conclusion for NotNormal {}
27
28impl Conclusion for NormalResiduals {}
29
30impl Conclusion for NotNormalResiduals {}
31
32impl Conclusion for SomeSignficantFeature {}
33
34impl Conclusion for NoSignificantFeature {}
35
36impl Conclusion for AccurateModel {}
37
38impl Conclusion for InaccurateModel {}
39
40impl Conclusion for SignificantCoefficient {}
41
42impl Conclusion for InsignificantCoefficient {}