1crate::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}