character_traits_warrior_capability/
cyber_defense_capability.rs

1// ---------------- [ File: character-traits-warrior-capability/src/cyber_defense_capability.rs ]
2crate::ix!();
3
4#[derive(Copy,EnumIter,Debug, Clone, PartialEq, Eq, Hash)]
5pub enum WarriorCyberDefenseCapability {
6    /// Chosen for entities whose vigilance and awareness consistently detect threats early,
7    /// enabling proactive adjustments to defensive measures.
8    CybersecuritySavvyAndDigitallyVigilant,
9
10    /// Assigned when an entity quickly initiates effective defense protocols upon recognizing threats,
11    /// significantly reducing potential damage through rapid intervention.
12    ProactivelyResponsiveToDigitalThreats,
13
14    /// Ideal for entities adept at instantly neutralizing malware or intrusions in real time,
15    /// ensuring minimal operational disruption.
16    CapableOfRealTimeMalwareNeutralization,
17
18    /// Selected when an entity prioritizes secure communications,
19    /// crucial for missions where data integrity and confidentiality are paramount.
20    ProficientInCommunicationEncryption,
21
22    /// Applied to entities proficient at using automated countermeasures,
23    /// especially beneficial in environments where manual responses are impractical or too slow.
24    AdeptAtDeployingAutonomousIntrusionCountermeasures,
25
26    /// Optimal for entities tasked with continuously securing critical systems against evolving threats,
27    /// ensuring robust and adaptive long-term cyber resilience.
28    SkilledAtAdaptiveSystemHardening,
29
30    /// Suitable for entities that must remain operationally secure and stable under continuous or severe cyberattacks,
31    /// ensuring mission-critical tasks can persist uninterrupted.
32    VigilantInOperationalSecurityUnderCyberAttack,
33
34    /// Ideal when an entity must rapidly identify and address previously unknown vulnerabilities,
35    /// especially valuable in high-stakes or dynamic threat environments.
36    CompetentAtZeroDayVulnerabilityMitigation,
37
38    /// Assigned to entities skilled at acquiring, interpreting, and leveraging threat intelligence,
39    /// essential for strategic decision-making and preemptive cyber defense.
40    ExpertAtDigitalThreatIntelligenceGathering,
41
42    /// Chosen when an entity excels at swiftly and securely recovering from cyber incidents,
43    /// minimizing downtime and ensuring swift operational restoration.
44    SkilledInSecurePostIncidentRecovery,
45}
46
47impl WarriorCyberDefenseCapability {
48    #[instrument(level = "trace", skip(self))]
49    pub fn intrinsic_dimension_ratings(&self) -> WarriorCapabilityIntrinsicDimensionRatings {
50        use WarriorCyberDefenseCapability::*;
51        tracing::trace!(
52            target: "intrinsic_ratings",
53            ?self,
54            "Generating ratings for cyber‑defense capability"
55        );
56        match self {
57            CybersecuritySavvyAndDigitallyVigilant => wc_ratings!(
58                /*  1‑10  */ 0.00, 0.00, 0.40, 0.20, 0.00, 0.40, 0.00, 0.60, 0.70, 0.40,
59                /* 11‑20  */ 0.20, 0.50, 0.60, 0.00, 0.30, 0.40, 0.50, 0.20, 0.60, 0.00,
60                /* 21‑30  */ 0.00, 0.00, 0.00, 0.00, 0.60, 0.00, 0.00, 0.20, 0.55, 0.00,
61                /* 31‑40  */ 0.60, 0.30, 0.00, 0.00, 0.00, 0.60, 0.80, 0.00, 0.70, 0.00,
62                /* 41‑50  */ 0.00, 0.00, 0.60, 0.00, 0.00, 0.60, 0.30, 0.00, 0.00, 0.00,
63                /* 51‑60  */ 0.60, 0.50, 0.50, 0.40, 0.50, 0.00, 0.60, 0.50, 0.75, 0.60,
64                /* 61‑70  */ 0.60, 0.40, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.50,
65                /* 71‑80  */ 0.60, 0.65, 0.00, 0.75, 0.50, 0.00, 0.00, 0.00, 0.30, 0.40,
66                /* 81‑90  */ 0.00, 0.40, 0.55, 0.60, 0.70, 0.85, 0.55, 0.50, 0.60, 0.50,
67                /* 91‑100 */ 0.00, 0.20, 0.50, 0.40, 0.60, 0.00, 0.20, 0.60, 0.40, 0.40,
68                /*101‑115*/ 0.60, 0.30, 0.30, 0.30, 0.60, 0.40, 0.50, 0.60, 0.60, 0.70,
69                               0.60, 0.60, 0.55, 0.60, 0.70
70            ),
71
72            ProactivelyResponsiveToDigitalThreats => wc_ratings!(
73                0.00, 0.00, 0.50, 0.00, 0.00, 0.50, 0.00, 0.60, 0.00, 0.70,
74                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.60, 0.00, 0.00, 0.00,
75                0.00, 0.00, 0.00, 0.00, 0.60, 0.00, 0.00, 0.00, 0.60, 0.00,
76                0.00, 0.00, 0.00, 0.00, 0.00, 0.60, 0.70, 0.00, 0.70, 0.00,
77                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
78                0.60, 0.55, 0.30, 0.00, 0.00, 0.00, 0.00, 0.00, 0.60, 0.00,
79                0.80, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
80                0.00, 0.60, 0.00, 0.70, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
81                0.00, 0.00, 0.60, 0.60, 0.60, 0.70, 0.90, 0.70, 0.00, 0.70,
82                0.00, 0.20, 0.40, 0.00, 0.60, 0.00, 0.00, 0.00, 0.00, 0.00,
83                0.00, 0.00, 0.00, 0.00, 0.60, 0.40, 0.50, 0.60, 0.60, 0.70,
84                               0.60, 0.60, 0.00, 0.00, 0.65
85            ),
86
87            CapableOfRealTimeMalwareNeutralization => wc_ratings!(
88                0.00, 0.00, 0.45, 0.00, 0.00, 0.55, 0.00, 0.65, 0.00, 0.00,
89                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.60, 0.00, 0.00, 0.00,
90                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.50, 0.00,
91                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.60, 0.00, 0.00, 0.00,
92                0.00, 0.00, 0.00, 0.00, 0.00, 0.65, 0.00, 0.00, 0.00, 0.00,
93                0.60, 0.55, 0.35, 0.00, 0.00, 0.00, 0.00, 0.00, 0.55, 0.00,
94                0.85, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
95                0.00, 0.60, 0.00, 0.70, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
96                0.00, 0.00, 0.70, 0.60, 0.60, 0.65, 0.75, 0.95, 0.00, 0.60,
97                0.00, 0.00, 0.00, 0.00, 0.60, 0.00, 0.00, 0.00, 0.00, 0.00,
98                0.00, 0.00, 0.00, 0.00, 0.60, 0.50, 0.50, 0.60, 0.60, 0.60,
99                               0.00, 0.00, 0.00, 0.00, 0.60
100            ),
101
102            ProficientInCommunicationEncryption => wc_ratings!(
103                0.00, 0.00, 0.45, 0.00, 0.00, 0.50, 0.00, 0.60, 0.00, 0.00,
104                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
105                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
106                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.60, 0.00, 0.00, 0.00,
107                0.00, 0.00, 0.00, 0.00, 0.00, 0.55, 0.00, 0.00, 0.00, 0.00,
108                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.60, 0.00,
109                0.50, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
110                0.00, 0.55, 0.00, 0.75, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
111                0.00, 0.00, 0.60, 0.55, 0.70, 0.65, 0.55, 0.00, 0.90, 0.60,
112                0.00, 0.00, 0.00, 0.00, 0.55, 0.00, 0.00, 0.00, 0.00, 0.00,
113                0.00, 0.00, 0.00, 0.00, 0.60, 0.40, 0.50, 0.55, 0.55, 0.55,
114                               0.00, 0.00, 0.00, 0.00, 0.55
115            ),
116
117            AdeptAtDeployingAutonomousIntrusionCountermeasures => wc_ratings!(
118                0.00, 0.00, 0.40, 0.00, 0.00, 0.60, 0.00, 0.70, 0.00, 0.00,
119                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
120                0.00, 0.00, 0.00, 0.00, 0.60, 0.00, 0.00, 0.00, 0.60, 0.00,
121                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.70, 0.00, 0.00, 0.00,
122                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
123                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.60, 0.00,
124                0.70, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
125                0.00, 0.60, 0.00, 0.70, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
126                0.00, 0.00, 0.75, 0.60, 0.70, 0.70, 0.65, 0.00, 0.00, 0.90,
127                0.00, 0.00, 0.00, 0.00, 0.65, 0.00, 0.00, 0.00, 0.00, 0.00,
128                0.00, 0.00, 0.00, 0.00, 0.60, 0.40, 0.50, 0.65, 0.65, 0.65,
129                               0.60, 0.60, 0.55, 0.60, 0.65
130            ),
131
132            SkilledAtAdaptiveSystemHardening => wc_ratings!(
133                0.00, 0.00, 0.00, 0.00, 0.00, 0.80, 0.00, 0.60, 0.00, 0.00,
134                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
135                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.75, 0.00,
136                0.00, 0.00, 0.00, 0.00, 0.00, 0.80, 0.60, 0.00, 0.00, 0.00,
137                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
138                0.00, 0.60, 0.00, 0.00, 0.80, 0.00, 0.70, 0.00, 0.60, 0.00,
139                0.60, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
140                0.00, 0.75, 0.00, 0.75, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
141                0.00, 0.00, 0.85, 0.60, 0.75, 0.00, 0.00, 0.00, 0.00, 0.00,
142                0.00, 0.00, 0.00, 0.00, 0.70, 0.00, 0.00, 0.00, 0.00, 0.00,
143                0.00, 0.00, 0.00, 0.00, 0.60, 0.50, 0.55, 0.70, 0.70, 0.70,
144                               0.60, 0.60, 0.60, 0.60, 0.70
145            ),
146
147            VigilantInOperationalSecurityUnderCyberAttack => wc_ratings!(
148                0.00, 0.00, 0.50, 0.00, 0.00, 0.75, 0.00, 0.60, 0.00, 0.00,
149                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
150                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.60, 0.00,
151                0.00, 0.00, 0.00, 0.00, 0.00, 0.65, 0.70, 0.00, 0.75, 0.00,
152                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
153                0.00, 0.60, 0.00, 0.00, 0.00, 0.00, 0.70, 0.00, 0.65, 0.00,
154                0.65, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
155                0.00, 0.65, 0.00, 0.75, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
156                0.00, 0.00, 0.80, 0.60, 0.90, 0.75, 0.00, 0.00, 0.00, 0.60,
157                0.00, 0.00, 0.00, 0.00, 0.70, 0.00, 0.00, 0.00, 0.00, 0.00,
158                0.00, 0.00, 0.00, 0.00, 0.60, 0.50, 0.55, 0.70, 0.70, 0.80,
159                               0.60, 0.70, 0.60, 0.60, 0.80
160            ),
161
162            CompetentAtZeroDayVulnerabilityMitigation => wc_ratings!(
163                0.00, 0.00, 0.70, 0.00, 0.00, 0.70, 0.00, 0.70, 0.00, 0.00,
164                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
165                0.00, 0.00, 0.00, 0.00, 0.75, 0.00, 0.00, 0.00, 0.75, 0.00,
166                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.65, 0.00, 0.00, 0.00,
167                0.00, 0.00, 0.00, 0.00, 0.00, 0.75, 0.00, 0.00, 0.00, 0.00,
168                0.00, 0.60, 0.00, 0.00, 0.00, 0.00, 0.65, 0.00, 0.70, 0.00,
169                0.80, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
170                0.00, 0.70, 0.00, 0.70, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
171                0.00, 0.00, 0.80, 0.85, 0.75, 0.80, 0.80, 0.70, 0.00, 0.00,
172                0.00, 0.00, 0.00, 0.00, 0.65, 0.00, 0.00, 0.00, 0.00, 0.00,
173                0.00, 0.00, 0.00, 0.00, 0.60, 0.55, 0.60, 0.70, 0.70, 0.80,
174                               0.60, 0.60, 0.60, 0.60, 0.65
175            ),
176
177            ExpertAtDigitalThreatIntelligenceGathering => wc_ratings!(
178                0.00, 0.00, 0.80, 0.00, 0.00, 0.00, 0.00, 0.65, 0.00, 0.00,
179                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.40, 0.00, 0.00,
180                0.00, 0.00, 0.00, 0.00, 0.80, 0.00, 0.00, 0.00, 0.00, 0.00,
181                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.70, 0.00, 0.00, 0.00,
182                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
183                0.60, 0.00, 0.00, 0.00, 0.00, 0.00, 0.70, 0.00, 0.80, 0.00,
184                0.60, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
185                0.00, 0.60, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
186                0.00, 0.00, 0.70, 0.70, 0.70, 0.90, 0.00, 0.00, 0.65, 0.00,
187                0.00, 0.40, 0.75, 0.00, 0.60, 0.00, 0.00, 0.00, 0.00, 0.00,
188                0.00, 0.00, 0.00, 0.00, 0.75, 0.60, 0.55, 0.70, 0.70, 0.75,
189                               0.60, 0.70, 0.60, 0.60, 0.60
190            ),
191
192            SkilledInSecurePostIncidentRecovery => wc_ratings!(
193                0.00, 0.00, 0.60, 0.00, 0.00, 0.85, 0.00, 0.00, 0.00, 0.00,
194                0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
195                0.00, 0.00, 0.00, 0.00, 0.80, 0.00, 0.00, 0.00, 0.60, 0.00,
196                0.00, 0.00, 0.00, 0.00, 0.00, 0.70, 0.00, 0.00, 0.00, 0.00,
197                0.00, 0.00, 0.00, 0.00, 0.00, 0.60, 0.00, 0.00, 0.00, 0.00,
198                0.70, 0.00, 0.00, 0.00, 0.80, 0.00, 0.80, 0.00, 0.70, 0.00,
199                0.60, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
200                0.00, 0.70, 0.00, 0.80, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
201                0.00, 0.00, 0.85, 0.60, 0.75, 0.00, 0.65, 0.60, 0.00, 0.00,
202                0.00, 0.00, 0.00, 0.00, 0.75, 0.60, 0.55, 0.70, 0.70, 0.80,
203                0.60, 0.70, 0.60, 0.60, 0.60, 0.60, 0.60, 0.60, 0.60, 0.75,
204                               0.60, 0.75, 0.60, 0.60, 0.85
205            ),
206        }
207    }
208}