Skip to main content

character_traits_relational_expectations/
relational_appreciation.rs

1// ---------------- [ File: character-traits-relational-expectations/src/relational_appreciation.rs ]
2crate::ix!();
3
4#[derive(Debug, Clone, PartialEq, Eq)]
5pub enum RelationalAppreciation {
6    BalanceBetweenAutonomyAndCollaboration,
7    DedicationToPerfection,
8    DiplomaticAndPragmaticQualities,
9    EmpathyAndAdaptabilityInOthers,
10    GenuineGratitudeAndHumility,
11    IntelligenceAndKindness,
12    MindfulnessAndRespectForNature,
13    MutualRespectForPower,
14    PatienceAndPersistenceInInteractions,
15    QuietAndThoughtfulEngagement,
16    ReliabilityAndIntegrity,
17    SharedComfortWithAmbiguity,
18    SharedCommitmentToHeritagePreservation,
19    SharedCommitmentToNature,
20    SharedCuriosityAndPatience,
21    SharedReverenceAndReflection,
22    SharedSenseOfAdventure,
23    SharpWitAndHumor,
24    StrengthAndCourageInOthers,
25    WitAndCharmInRelationships,
26}
27
28#[derive(Clone, Debug, Serialize, Deserialize, Builder, Getters)]
29#[builder(pattern = "owned")]
30#[getset(get = "pub")]
31pub struct RelationalAppreciationIntrinsicDimensionRatings {
32    autonomy_collaboration_balance: f64,
33    intellectual_merit:             f64,
34    moral_virtue:                   f64,
35    emotional_resonance:            f64,
36    spiritual_alignment:            f64,
37    adventurous_dynamism:           f64,
38    social_charm:                   f64,
39    reliability_consistency:        f64,
40}
41
42macro_rules! relational_appreciation_intrinsic_ratings {
43    (
44        $auto_collab:expr, $intel:expr, $moral:expr, $emotional:expr,
45        $spiritual:expr, $adventure:expr, $charm:expr, $reliable:expr
46    ) => {
47        RelationalAppreciationIntrinsicDimensionRatingsBuilder::default()
48            .autonomy_collaboration_balance(expand_spread($auto_collab))
49            .intellectual_merit(expand_spread($intel))
50            .moral_virtue(expand_spread($moral))
51            .emotional_resonance(expand_spread($emotional))
52            .spiritual_alignment(expand_spread($spiritual))
53            .adventurous_dynamism(expand_spread($adventure))
54            .social_charm(expand_spread($charm))
55            .reliability_consistency(expand_spread($reliable))
56            .build()
57            .unwrap()
58    };
59}
60
61impl RelationalAppreciation {
62    /// Deterministic, hand‑crafted intrinsic ratings for every appreciation.
63    pub fn intrinsic_ratings(&self) -> RelationalAppreciationIntrinsicDimensionRatings {
64        trace!(variant = ?self, "Computing RelationalAppreciation intrinsic ratings");
65        use RelationalAppreciation::*;
66        match self {
67            BalanceBetweenAutonomyAndCollaboration => relational_appreciation_intrinsic_ratings!(1.00,0.70,0.80,0.70,0.60,0.65,0.60,0.80),
68            DedicationToPerfection                 => relational_appreciation_intrinsic_ratings!(0.65,0.95,0.85,0.60,0.55,0.55,0.55,0.95),
69            DiplomaticAndPragmaticQualities        => relational_appreciation_intrinsic_ratings!(0.80,0.80,0.75,0.75,0.55,0.60,0.75,0.80),
70            EmpathyAndAdaptabilityInOthers         => relational_appreciation_intrinsic_ratings!(0.75,0.70,0.80,0.90,0.60,0.70,0.70,0.75),
71            GenuineGratitudeAndHumility            => relational_appreciation_intrinsic_ratings!(0.70,0.65,0.90,0.80,0.70,0.55,0.65,0.85),
72            IntelligenceAndKindness                => relational_appreciation_intrinsic_ratings!(0.70,0.90,0.85,0.80,0.60,0.60,0.70,0.80),
73            MindfulnessAndRespectForNature         => relational_appreciation_intrinsic_ratings!(0.75,0.70,0.85,0.75,0.85,0.60,0.60,0.80),
74            MutualRespectForPower                  => relational_appreciation_intrinsic_ratings!(0.85,0.80,0.80,0.70,0.65,0.65,0.70,0.80),
75            PatienceAndPersistenceInInteractions   => relational_appreciation_intrinsic_ratings!(0.70,0.70,0.80,0.80,0.60,0.55,0.60,0.90),
76            QuietAndThoughtfulEngagement           => relational_appreciation_intrinsic_ratings!(0.70,0.75,0.80,0.70,0.60,0.50,0.55,0.80),
77            ReliabilityAndIntegrity                => relational_appreciation_intrinsic_ratings!(0.75,0.80,0.95,0.70,0.60,0.50,0.55,1.00),
78            SharedComfortWithAmbiguity             => relational_appreciation_intrinsic_ratings!(0.80,0.80,0.70,0.75,0.65,0.70,0.70,0.70),
79            SharedCommitmentToHeritagePreservation => relational_appreciation_intrinsic_ratings!(0.70,0.80,0.90,0.75,0.80,0.55,0.60,0.85),
80            SharedCommitmentToNature               => relational_appreciation_intrinsic_ratings!(0.75,0.75,0.80,0.80,0.85,0.70,0.65,0.85),
81            SharedCuriosityAndPatience             => relational_appreciation_intrinsic_ratings!(0.75,0.85,0.80,0.80,0.60,0.70,0.70,0.80),
82            SharedReverenceAndReflection           => relational_appreciation_intrinsic_ratings!(0.70,0.80,0.90,0.75,0.85,0.55,0.60,0.80),
83            SharedSenseOfAdventure                 => relational_appreciation_intrinsic_ratings!(0.80,0.75,0.75,0.80,0.65,1.00,0.80,0.70),
84            SharpWitAndHumor                       => relational_appreciation_intrinsic_ratings!(0.70,0.90,0.75,0.85,0.55,0.80,1.00,0.70),
85            StrengthAndCourageInOthers             => relational_appreciation_intrinsic_ratings!(0.80,0.75,0.85,0.80,0.60,0.80,0.70,0.85),
86            WitAndCharmInRelationships             => relational_appreciation_intrinsic_ratings!(0.70,0.85,0.75,0.85,0.55,0.75,1.00,0.70),
87        }
88    }
89}