1crate::ix!();
3
4#[derive(Debug, Clone, PartialEq, Eq)]
5pub enum RelationalRequirement {
6 AdaptationToMoodSwingsAndImpulsiveness,
7 AlignmentWithFaithAndValues,
8 CourageAndDeterminationInPartners,
9 CourageAuthenticityAndFearlessness,
10 DeeperEngagement,
11 EmpathyBraveryAndRespect,
12 GenuineIntentionsAndTrustworthiness,
13 HumilityInInteractions,
14 IntelligenceWitAndIntellectualStimulation,
15 KindnessAndCompassion,
16 LoyaltyAndPatienceFromPartners,
17 PartnersToNavigatePoliticalComplexity,
18 PartnersToUnderstandCynicalAndPragmaticNature,
19 ProvenTrustworthiness,
20 RespectForAuthority,
21 RespectForAutonomyAndComplexity,
22 RespectForAutonomyAndIndependence,
23 RespectForNatureAndItsRhythms,
24 RespectForPowerAndJustice,
25 RespectForSolitudeAndIndependence,
26 RespectfulApproach,
27 TrustRespectAndGenuineIntentions,
28 UnderstandingOfProtectiveNature,
29}
30
31#[derive(Clone, Debug, Serialize, Deserialize, Builder, Getters)]
32#[builder(pattern = "owned")]
33#[getset(get = "pub")]
34pub struct RelationalRequirementIntrinsicDimensionRatings {
35 loyalty_reliability: f64,
36 intellectual_capacity: f64,
37 emotional_resilience: f64,
38 moral_integrity: f64,
39 autonomy_respect: f64,
40 spiritual_alignment: f64,
41 political_navigation: f64,
42 bravery_courage: f64,
43 empathy_compassion: f64,
44 trustworthiness: f64,
45 patience_tolerance: f64,
46}
47
48macro_rules! relational_requirement_intrinsic_ratings {
49 (
50 $loyal:expr, $intel:expr, $emotion:expr, $moral:expr, $autonomy:expr,
51 $spirit:expr, $politics:expr, $bravery:expr, $empathy:expr,
52 $trust:expr, $patience:expr
53 ) => {
54 RelationalRequirementIntrinsicDimensionRatingsBuilder::default()
55 .loyalty_reliability(expand_spread($loyal))
56 .intellectual_capacity(expand_spread($intel))
57 .emotional_resilience(expand_spread($emotion))
58 .moral_integrity(expand_spread($moral))
59 .autonomy_respect(expand_spread($autonomy))
60 .spiritual_alignment(expand_spread($spirit))
61 .political_navigation(expand_spread($politics))
62 .bravery_courage(expand_spread($bravery))
63 .empathy_compassion(expand_spread($empathy))
64 .trustworthiness(expand_spread($trust))
65 .patience_tolerance(expand_spread($patience))
66 .build()
67 .unwrap()
68 };
69}
70
71impl RelationalRequirement {
72 pub fn intrinsic_ratings(&self) -> RelationalRequirementIntrinsicDimensionRatings {
73 trace!(variant=?self,"Computing RelationalRequirement intrinsic ratings");
74 use RelationalRequirement::*;
75 match self {
76 AdaptationToMoodSwingsAndImpulsiveness => relational_requirement_intrinsic_ratings!(0.75,0.75,0.90,0.75,0.80,0.65,0.65,0.80,0.85,0.80,0.90),
77 AlignmentWithFaithAndValues => relational_requirement_intrinsic_ratings!(0.85,0.75,0.75,0.95,0.70,1.00,0.75,0.75,0.80,0.90,0.85),
78 CourageAndDeterminationInPartners => relational_requirement_intrinsic_ratings!(0.85,0.80,0.80,0.80,0.75,0.70,0.70,1.00,0.80,0.85,0.80),
79 CourageAuthenticityAndFearlessness => relational_requirement_intrinsic_ratings!(0.85,0.80,0.80,0.85,0.75,0.70,0.70,1.00,0.80,0.85,0.75),
80 DeeperEngagement => relational_requirement_intrinsic_ratings!(0.80,0.80,0.85,0.80,0.75,0.70,0.70,0.80,0.80,0.80,0.85),
81 EmpathyBraveryAndRespect => relational_requirement_intrinsic_ratings!(0.85,0.80,0.85,0.85,0.75,0.70,0.70,0.90,0.90,0.85,0.80),
82 GenuineIntentionsAndTrustworthiness => relational_requirement_intrinsic_ratings!(0.85,0.75,0.80,0.90,0.75,0.70,0.70,0.75,0.85,1.00,0.80),
83 HumilityInInteractions => relational_requirement_intrinsic_ratings!(0.80,0.75,0.75,0.90,0.75,0.70,0.70,0.75,0.85,0.90,0.85),
84 IntelligenceWitAndIntellectualStimulation => relational_requirement_intrinsic_ratings!(0.80,0.95,0.80,0.80,0.75,0.70,0.70,0.80,0.80,0.85,0.75),
85 KindnessAndCompassion => relational_requirement_intrinsic_ratings!(0.85,0.75,0.80,0.90,0.75,0.70,0.70,0.75,0.95,0.90,0.85),
86 LoyaltyAndPatienceFromPartners => relational_requirement_intrinsic_ratings!(1.00,0.75,0.80,0.85,0.70,0.70,0.70,0.75,0.85,0.95,1.00),
87 PartnersToNavigatePoliticalComplexity => relational_requirement_intrinsic_ratings!(0.85,0.85,0.80,0.85,0.75,0.75,1.00,0.80,0.80,0.90,0.80),
88 PartnersToUnderstandCynicalAndPragmaticNature => relational_requirement_intrinsic_ratings!(0.85,0.85,0.80,0.85,0.80,0.70,0.95,0.80,0.80,0.90,0.80),
89 ProvenTrustworthiness => relational_requirement_intrinsic_ratings!(0.90,0.75,0.80,0.90,0.75,0.70,0.70,0.75,0.80,1.00,0.80),
90 RespectForAuthority => relational_requirement_intrinsic_ratings!(0.85,0.75,0.75,0.85,0.70,0.70,0.80,0.75,0.75,0.90,0.80),
91 RespectForAutonomyAndComplexity => relational_requirement_intrinsic_ratings!(0.85,0.80,0.80,0.85,0.90,0.70,0.80,0.80,0.80,0.90,0.80),
92 RespectForAutonomyAndIndependence => relational_requirement_intrinsic_ratings!(0.85,0.80,0.80,0.85,1.00,0.70,0.80,0.80,0.80,0.90,0.80),
93 RespectForNatureAndItsRhythms => relational_requirement_intrinsic_ratings!(0.80,0.75,0.80,0.85,0.75,0.85,0.70,0.75,0.85,0.85,0.85),
94 RespectForPowerAndJustice => relational_requirement_intrinsic_ratings!(0.85,0.80,0.80,0.90,0.75,0.75,0.85,0.85,0.80,0.90,0.80),
95 RespectForSolitudeAndIndependence => relational_requirement_intrinsic_ratings!(0.80,0.75,0.75,0.85,1.00,0.70,0.75,0.75,0.75,0.85,0.90),
96 RespectfulApproach => relational_requirement_intrinsic_ratings!(0.80,0.75,0.75,0.90,0.75,0.70,0.70,0.75,0.85,0.90,0.85),
97 TrustRespectAndGenuineIntentions => relational_requirement_intrinsic_ratings!(0.90,0.75,0.80,0.90,0.75,0.70,0.70,0.75,0.85,1.00,0.85),
98 UnderstandingOfProtectiveNature => relational_requirement_intrinsic_ratings!(0.85,0.80,0.80,0.85,0.80,0.70,0.75,0.85,0.80,0.90,0.80),
99 }
100 }
101}