Skip to main content

character_traits_relational_expectations/
relational_requirement.rs

1// ---------------- [ File: character-traits-relational-expectations/src/relational_requirement.rs ]
2crate::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}