Skip to main content

character_traits_relational_expectations/
relational_demand.rs

1// ---------------- [ File: character-traits-relational-expectations/src/relational_demand.rs ]
2crate::ix!();
3
4#[derive(Debug, Clone, PartialEq, Eq)]
5pub enum RelationalDemand {
6    CarefulNavigationOfEmotions,
7    ClearCommunicationAndRespect,
8    DeepEmotionalConnection,
9    EmpathyAndDeepConnection,
10    EmpathyForHerMotivations,
11    EngagingAndDynamicInteractions,
12    GenuineSpiritualCommitment,
13    GenuineTrustworthiness,
14    IntellectualEngagement,
15    IntelligenceEmpathyAndBravery,
16    LoyaltyAndObedience,
17    MatchingIntelligenceAndWit,
18    RespectForAmbitionAndIndependence,
19    RespectForDutyAndTradition,
20    RespectForPrivacyAndReservedNature,
21    RespectForSpiritualExperiences,
22    TrustRespectAndLoyalty,
23    TrustworthinessAndLoyalty,
24    UnderstandingOfDualNature,
25    UnwaveringLoyaltyAndDevotion,
26    RespondsPoorlyToControlOrDomination,
27}
28
29#[derive(Clone, Debug, Serialize, Deserialize, Builder, Getters)]
30#[builder(pattern = "owned")]
31#[getset(get = "pub")]
32pub struct RelationalDemandIntrinsicDimensionRatings {
33    emotional_intensity:    f64,
34    communication_clarity:  f64,
35    spiritual_commitment:   f64,
36    intellectual_challenge: f64,
37    loyalty_dedication:     f64,
38    autonomy_respect:       f64,
39    trustworthiness:        f64,
40    power_balance:          f64,
41    independence_valuation: f64,
42}
43
44macro_rules! relational_demand_intrinsic_ratings {
45    (
46        $emotional:expr, $communication:expr, $spiritual:expr, $intellectual:expr,
47        $loyalty:expr, $autonomy:expr, $trust:expr, $power:expr, $independence:expr
48    ) => {
49        RelationalDemandIntrinsicDimensionRatingsBuilder::default()
50            .emotional_intensity(expand_spread($emotional))
51            .communication_clarity(expand_spread($communication))
52            .spiritual_commitment(expand_spread($spiritual))
53            .intellectual_challenge(expand_spread($intellectual))
54            .loyalty_dedication(expand_spread($loyalty))
55            .autonomy_respect(expand_spread($autonomy))
56            .trustworthiness(expand_spread($trust))
57            .power_balance(expand_spread($power))
58            .independence_valuation(expand_spread($independence))
59            .build()
60            .unwrap()
61    };
62}
63
64impl RelationalDemand {
65    pub fn intrinsic_ratings(&self) -> RelationalDemandIntrinsicDimensionRatings {
66        trace!(variant = ?self, "Computing RelationalDemand intrinsic ratings");
67        use RelationalDemand::*;
68        match self {
69            CarefulNavigationOfEmotions         => relational_demand_intrinsic_ratings!(0.90,0.80,0.60,0.70,0.75,0.70,0.80,0.70,0.70),
70            ClearCommunicationAndRespect        => relational_demand_intrinsic_ratings!(0.70,1.00,0.55,0.75,0.80,0.75,0.85,0.70,0.75),
71            DeepEmotionalConnection             => relational_demand_intrinsic_ratings!(1.00,0.80,0.60,0.70,0.80,0.65,0.80,0.65,0.60),
72            EmpathyAndDeepConnection            => relational_demand_intrinsic_ratings!(0.95,0.80,0.60,0.70,0.80,0.65,0.80,0.65,0.60),
73            EmpathyForHerMotivations            => relational_demand_intrinsic_ratings!(0.90,0.80,0.60,0.75,0.80,0.70,0.85,0.70,0.65),
74            EngagingAndDynamicInteractions      => relational_demand_intrinsic_ratings!(0.85,0.85,0.55,0.80,0.75,0.75,0.75,0.70,0.70),
75            GenuineSpiritualCommitment          => relational_demand_intrinsic_ratings!(0.75,0.75,1.00,0.70,0.85,0.70,0.85,0.70,0.60),
76            GenuineTrustworthiness              => relational_demand_intrinsic_ratings!(0.75,0.75,0.60,0.70,0.85,0.70,1.00,0.70,0.65),
77            IntellectualEngagement              => relational_demand_intrinsic_ratings!(0.70,0.80,0.55,0.95,0.75,0.75,0.80,0.70,0.75),
78            IntelligenceEmpathyAndBravery       => relational_demand_intrinsic_ratings!(0.85,0.80,0.60,0.90,0.80,0.75,0.80,0.75,0.70),
79            LoyaltyAndObedience                 => relational_demand_intrinsic_ratings!(0.70,0.70,0.60,0.60,1.00,0.55,0.85,0.80,0.50),
80            MatchingIntelligenceAndWit          => relational_demand_intrinsic_ratings!(0.80,0.80,0.55,0.95,0.80,0.75,0.80,0.75,0.75),
81            RespectForAmbitionAndIndependence   => relational_demand_intrinsic_ratings!(0.70,0.80,0.55,0.85,0.75,0.80,0.80,0.80,1.00),
82            RespectForDutyAndTradition          => relational_demand_intrinsic_ratings!(0.70,0.80,0.70,0.75,0.80,0.70,0.85,0.80,0.70),
83            RespectForPrivacyAndReservedNature  => relational_demand_intrinsic_ratings!(0.70,0.70,0.55,0.75,0.75,0.85,0.85,0.70,0.85),
84            RespectForSpiritualExperiences      => relational_demand_intrinsic_ratings!(0.75,0.80,0.95,0.75,0.80,0.70,0.85,0.75,0.70),
85            TrustRespectAndLoyalty              => relational_demand_intrinsic_ratings!(0.75,0.80,0.60,0.75,0.95,0.70,0.95,0.75,0.70),
86            TrustworthinessAndLoyalty           => relational_demand_intrinsic_ratings!(0.75,0.75,0.60,0.70,0.95,0.65,1.00,0.75,0.65),
87            UnderstandingOfDualNature           => relational_demand_intrinsic_ratings!(0.85,0.75,0.65,0.85,0.80,0.80,0.85,0.80,0.85),
88            UnwaveringLoyaltyAndDevotion        => relational_demand_intrinsic_ratings!(0.80,0.75,0.70,0.70,1.00,0.55,0.95,0.85,0.55),
89            RespondsPoorlyToControlOrDomination => relational_demand_intrinsic_ratings!(0.85,0.75,0.55,0.75,0.70,0.90,0.75,0.40,0.90),
90        }
91    }
92}