ed_journals/modules/odyssey/models/
item_category.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
use crate::modules::odyssey::Item;
use serde::{Deserialize, Serialize};

/// Type of category for a given Odyssey item.
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
pub enum ItemCategory {
    #[serde(alias = "Data", alias = "$MICRORESOURCE_CATEGORY_Data;")]
    Data,

    #[serde(alias = "Component", alias = "$MICRORESOURCE_CATEGORY_Component;")]
    Component,

    #[serde(alias = "Item", alias = "$MICRORESOURCE_CATEGORY_Item;")]
    Item,

    #[serde(alias = "Consumable", alias = "$MICRORESOURCE_CATEGORY_Consumable;")]
    Consumable,

    #[serde(alias = "Mission", alias = "$MICRORESOURCE_CATEGORY_Mission;")]
    Mission,

    #[cfg(feature = "allow-unknown")]
    #[cfg_attr(docsrs, doc(cfg(feature = "allow-unknown")))]
    #[serde(untagged)]
    Unknown(String),
}

impl From<Item> for ItemCategory {
    fn from(value: Item) -> Self {
        match value {
            Item::AccidentLogs
            | Item::AirQualityReports
            | Item::AtmosphericData
            | Item::AudioLogs
            | Item::AxCombatLogs
            | Item::BallisticsData
            | Item::BiologicalWeaponData
            | Item::BiometricData
            | Item::BlacklistData
            | Item::BloodTestResults
            | Item::CampaignPlans
            | Item::CatMedia
            | Item::CensusData
            | Item::ChemicalExperimentData
            | Item::ChemicalFormulae
            | Item::ChemicalInventory
            | Item::ChemicalPatents
            | Item::ChemicalWeaponData
            | Item::ClassicEntertainment
            | Item::ClinicalTrialRecords
            | Item::CocktailRecipes
            | Item::CombatTrainingMaterial
            | Item::CombatantPerformance
            | Item::ConflictHistory
            | Item::CriminalRecords
            | Item::CropYieldAnalysis
            | Item::CulinaryRecipes
            | Item::DigitalDesigns
            | Item::DutyRota
            | Item::EmployeeDirectory
            | Item::EmployeeExpenses
            | Item::EmployeeGeneticData
            | Item::EmploymentHistory
            | Item::EnhancedInterrogationRecordings
            | Item::EspionageMaterial
            | Item::EvacuationProtocols
            | Item::ExplorationJournals
            | Item::ExtractionYieldData
            | Item::FactionAssociates
            | Item::FactionDonatorList
            | Item::FactionNews
            | Item::FinancialProjections
            | Item::FleetRegistry
            | Item::GeneSequencingData
            | Item::GeneticResearch
            | Item::GeologicalData
            | Item::HydroponicData
            | Item::IncidentLogs
            | Item::InfluenceProjections
            | Item::InternalCorrespondence
            | Item::InterrogationRecordings
            | Item::InterviewRecordings
            | Item::JobApplications
            | Item::Kompromat
            | Item::LiteraryFiction
            | Item::MaintenanceLogs
            | Item::ManufacturingInstructions
            | Item::MedicalRecords
            | Item::MeetingMinutes
            | Item::MineralSurvey
            | Item::MiningAnalytics
            | Item::MultimediaEntertainment
            | Item::NetworkAccessHistory
            | Item::NetworkSecurityProtocols
            | Item::NextOfKinRecords
            | Item::NocData
            | Item::OperationalManual
            | Item::OpinionPolls
            | Item::PatientHistory
            | Item::PatrolRoutes
            | Item::PayrollInformation
            | Item::PersonalLogs
            | Item::PharmaceuticalPatents
            | Item::PhotoAlbums
            | Item::PlantGrowthCharts
            | Item::PoliticalAffiliations
            | Item::PrisonerLogs
            | Item::ProductionReports
            | Item::ProductionSchedule
            | Item::Propaganda
            | Item::PurchaseRecords
            | Item::PurchaseRequests
            | Item::RadioactivityData
            | Item::ReactorOutputReview
            | Item::RecyclingLogs
            | Item::ResidentialDirectory
            | Item::RiskAssessments
            | Item::SalesRecords
            | Item::SecurityExpenses
            | Item::SeedGeneaology
            | Item::SettlementAssaultPlans
            | Item::SettlementDefencePlans
            | Item::ShareholderInformation
            | Item::SlushFundLogs
            | Item::SmearCampaignPlans
            | Item::SpectralAnalysisData
            | Item::Spyware
            | Item::StellarActivityLogs
            | Item::SurveillanceLogs
            | Item::TacticalPlans
            | Item::TaxRecords
            | Item::TopographicalSurveys
            | Item::TravelPermits
            | Item::TroopDeploymentRecords
            | Item::UnionMembership
            | Item::VaccinationRecords
            | Item::VaccineResearch
            | Item::VipSecurityDetail
            | Item::VirologyData
            | Item::Virus
            | Item::VisitorRegister
            | Item::WeaponInventory
            | Item::WeaponTestData
            | Item::XenoDefenceProtocols => ItemCategory::Data,

            Item::AgriculturalProcessSample
            | Item::BiochemicalAgent
            | Item::BiologicalSample
            | Item::BuildingSchematic
            | Item::Californium
            | Item::CastFossil
            | Item::ChemicalProcessSample
            | Item::ChemicalSample
            | Item::CompactLibrary
            | Item::CompressionLiquefiedGas
            | Item::ContaminatedSpireRefineryCompound
            | Item::DeepMantleSample
            | Item::DegradedPowerRegulator
            | Item::GMeds
            | Item::GeneticRepairMeds
            | Item::HealthMonitor
            | Item::Hush
            | Item::InertiaCanister
            | Item::Infinity
            | Item::InorganicContaminant
            | Item::Insight
            | Item::InsightDataBank
            | Item::InsightEntertainmentSuite
            | Item::IonisedGas
            | Item::Lazarus
            | Item::MicrobialInhibitor
            | Item::MutagenicCatalyst
            | Item::NutritionalConcentrate
            | Item::PersonalComputer
            | Item::PersonalDocuments
            | Item::PetrifiedFossil
            | Item::PowerRegulator
            | Item::Push
            | Item::PyrolyticCatalyst
            | Item::RefinementProcessSample
            | Item::ShipSchematic
            | Item::SpireRefineryCompound
            | Item::SuitSchematic
            | Item::SurveillanceEquipment
            | Item::SyntheticGenome
            | Item::SyntheticPathogen
            | Item::TrueFormFossil
            | Item::UniversalTranslator
            | Item::VehicleSchematic
            | Item::WeaponSchematic => ItemCategory::Item,

            Item::CircuitBoard
            | Item::CarbonFibrePlating
            | Item::CircuitSwitch
            | Item::ElectricalFuse
            | Item::ElectricalWiring
            | Item::Electromagnet
            | Item::IonBattery
            | Item::MetalCoil
            | Item::MicroSupercapacitor
            | Item::MicroTransformer
            | Item::Microelectrode
            | Item::Motor
            | Item::OpticalFibre
            | Item::Aerogel
            | Item::ChemicalCatalyst
            | Item::ChemicalSuperbase
            | Item::Epinephrine
            | Item::EpoxyAdhesive
            | Item::Graphene
            | Item::OxygenicBacteria
            | Item::PHNeutraliser
            | Item::RDX
            | Item::ViscoelasticPolymer
            | Item::EncryptedMemoryChip
            | Item::MemoryChip
            | Item::MicroHydraulics
            | Item::MicroThrusters
            | Item::OpticalLens
            | Item::Scrambler
            | Item::TitaniumPlating
            | Item::Transmitter
            | Item::TungstenCarbide
            | Item::WeaponComponent => ItemCategory::Component,

            Item::EnergyCell
            | Item::FragGranade
            | Item::Medkit
            | Item::ShieldDisruptor
            | Item::ShieldProjector
            | Item::EBreach => ItemCategory::Consumable,

            #[cfg(feature = "allow-unknown")]
            Item::Unknown(item) => ItemCategory::Unknown(format!("Unknown item: {}", item)),
        }
    }
}