gleam-spacetraders-sdk/src/models/waypoint_trait_symbol.gleam
Lily Rose cc8edbed02
Some checks are pending
test / test (push) Waiting to run
Add functioning sdk
2025-06-17 01:43:06 +10:00

229 lines
6.7 KiB
Gleam

import gleam/dynamic/decode.{type Decoder}
import utils/decode as decode_utils
pub type WaypointTraitSymbol {
Uncharted
UnderConstruction
Marketplace
Shipyard
Outpost
ScatteredSettlements
SprawlingCities
MegaStructures
PirateBase
Overcrowded
HighTech
Corrupt
Bureaucratic
TradingHub
Industrial
BlackMarket
ResearchFacility
MilitaryBase
SurveillanceOutpost
ExplorationOutpost
MineralDeposits
CommonMetalDeposits
PreciousMetalDeposits
RareMetalDeposits
MethanePools
IceCrystals
ExplosiveGases
StrongMagnetosphere
VibrantAuroras
SaltFlats
Canyons
PerpetualDaylight
PerpetualOvercast
DrySeabeds
MagmaSeas
Supervolcanoes
AshClouds
VastRuins
MutatedFlora
Terraformed
ExtremeTemperatures
ExtremePressure
DiverseLife
ScarceLife
Fossils
WeakGravity
StrongGravity
CrushingGravity
ToxicAtmosphere
CorrosiveAtmosphere
BreathableAtmosphere
ThinAtmosphere
Jovian
Rocky
Volcanic
Frozen
Swamp
Barren
Temperate
Jungle
Ocean
Radioactive
MicroGravityAnomalies
DebrisCluster
DeepCraters
ShallowCraters
UnstableComposition
HollowedInterior
Stripped
}
pub fn to_string(waypoint_trait_symbol: WaypointTraitSymbol) -> String {
case waypoint_trait_symbol {
Uncharted -> "UNCHARTED"
UnderConstruction -> "UNDER_CONSTRUCTION"
Marketplace -> "MARKETPLACE"
Shipyard -> "SHIPYARD"
Outpost -> "OUTPOST"
ScatteredSettlements -> "SCATTERED_SETTLEMENTS"
SprawlingCities -> "SPRAWLING_CITIES"
MegaStructures -> "MEGA_STRUCTURES"
PirateBase -> "PIRATE_BASE"
Overcrowded -> "OVERCROWDED"
HighTech -> "HIGH_TECH"
Corrupt -> "CORRUPT"
Bureaucratic -> "BUREAUCRATIC"
TradingHub -> "TRADING_HUB"
Industrial -> "INDUSTRIAL"
BlackMarket -> "BLACK_MARKET"
ResearchFacility -> "RESEARCH_FACILITY"
MilitaryBase -> "MILITARY_BASE"
SurveillanceOutpost -> "SURVEILLANCE_OUTPOST"
ExplorationOutpost -> "EXPLORATION_OUTPOST"
MineralDeposits -> "MINERAL_DEPOSITS"
CommonMetalDeposits -> "COMMON_METAL_DEPOSITS"
PreciousMetalDeposits -> "PRECIOUS_METAL_DEPOSITS"
RareMetalDeposits -> "RARE_METAL_DEPOSITS"
MethanePools -> "METHANE_POOLS"
IceCrystals -> "ICE_CRYSTALS"
ExplosiveGases -> "EXPLOSIVE_GASES"
StrongMagnetosphere -> "STRONG_MAGNETOSPHERE"
VibrantAuroras -> "VIBRANT_AURORAS"
SaltFlats -> "SALT_FLATS"
Canyons -> "CANYONS"
PerpetualDaylight -> "PERPETUAL_DAYLIGHT"
PerpetualOvercast -> "PERPETUAL_OVERCAST"
DrySeabeds -> "DRY_SEABEDS"
MagmaSeas -> "MAGMA_SEAS"
Supervolcanoes -> "SUPERVOLCANOES"
AshClouds -> "ASH_CLOUDS"
VastRuins -> "VAST_RUINS"
MutatedFlora -> "MUTATED_FLORA"
Terraformed -> "TERRAFORMED"
ExtremeTemperatures -> "EXTREME_TEMPERATURES"
ExtremePressure -> "EXTREME_PRESSURE"
DiverseLife -> "DIVERSE_LIFE"
ScarceLife -> "SCARCE_LIFE"
Fossils -> "FOSSILS"
WeakGravity -> "WEAK_GRAVITY"
StrongGravity -> "STRONG_GRAVITY"
CrushingGravity -> "CRUSHING_GRAVITY"
ToxicAtmosphere -> "TOXIC_ATMOSPHERE"
CorrosiveAtmosphere -> "CORROSIVE_ATMOSPHERE"
BreathableAtmosphere -> "BREATHABLE_ATMOSPHERE"
ThinAtmosphere -> "THIN_ATMOSPHERE"
Jovian -> "JOVIAN"
Rocky -> "ROCKY"
Volcanic -> "VOLCANIC"
Frozen -> "FROZEN"
Swamp -> "SWAMP"
Barren -> "BARREN"
Temperate -> "TEMPERATE"
Jungle -> "JUNGLE"
Ocean -> "OCEAN"
Radioactive -> "RADIOACTIVE"
MicroGravityAnomalies -> "MICRO_GRAVITY_ANOMALIES"
DebrisCluster -> "DEBRIS_CLUSTER"
DeepCraters -> "DEEP_CRATERS"
ShallowCraters -> "SHALLOW_CRATERS"
UnstableComposition -> "UNSTABLE_COMPOSITION"
HollowedInterior -> "HOLLOWED_INTERIOR"
Stripped -> "STRIPPED"
}
}
pub fn parse(
waypoint_trait_symbol_str: String,
) -> Result(WaypointTraitSymbol, WaypointTraitSymbol) {
case waypoint_trait_symbol_str {
"UNCHARTED" -> Ok(Uncharted)
"UNDER_CONSTRUCTION" -> Ok(UnderConstruction)
"MARKETPLACE" -> Ok(Marketplace)
"SHIPYARD" -> Ok(Shipyard)
"OUTPOST" -> Ok(Outpost)
"SCATTERED_SETTLEMENTS" -> Ok(ScatteredSettlements)
"SPRAWLING_CITIES" -> Ok(SprawlingCities)
"MEGA_STRUCTURES" -> Ok(MegaStructures)
"PIRATE_BASE" -> Ok(PirateBase)
"OVERCROWDED" -> Ok(Overcrowded)
"HIGH_TECH" -> Ok(HighTech)
"CORRUPT" -> Ok(Corrupt)
"BUREAUCRATIC" -> Ok(Bureaucratic)
"TRADING_HUB" -> Ok(TradingHub)
"INDUSTRIAL" -> Ok(Industrial)
"BLACK_MARKET" -> Ok(BlackMarket)
"RESEARCH_FACILITY" -> Ok(ResearchFacility)
"MILITARY_BASE" -> Ok(MilitaryBase)
"SURVEILLANCE_OUTPOST" -> Ok(SurveillanceOutpost)
"EXPLORATION_OUTPOST" -> Ok(ExplorationOutpost)
"MINERAL_DEPOSITS" -> Ok(MineralDeposits)
"COMMON_METAL_DEPOSITS" -> Ok(CommonMetalDeposits)
"PRECIOUS_METAL_DEPOSITS" -> Ok(PreciousMetalDeposits)
"RARE_METAL_DEPOSITS" -> Ok(RareMetalDeposits)
"METHANE_POOLS" -> Ok(MethanePools)
"ICE_CRYSTALS" -> Ok(IceCrystals)
"EXPLOSIVE_GASES" -> Ok(ExplosiveGases)
"STRONG_MAGNETOSPHERE" -> Ok(StrongMagnetosphere)
"VIBRANT_AURORAS" -> Ok(VibrantAuroras)
"SALT_FLATS" -> Ok(SaltFlats)
"CANYONS" -> Ok(Canyons)
"PERPETUAL_DAYLIGHT" -> Ok(PerpetualDaylight)
"PERPETUAL_OVERCAST" -> Ok(PerpetualOvercast)
"DRY_SEABEDS" -> Ok(DrySeabeds)
"MAGMA_SEAS" -> Ok(MagmaSeas)
"SUPERVOLCANOES" -> Ok(Supervolcanoes)
"ASH_CLOUDS" -> Ok(AshClouds)
"VAST_RUINS" -> Ok(VastRuins)
"MUTATED_FLORA" -> Ok(MutatedFlora)
"TERRAFORMED" -> Ok(Terraformed)
"EXTREME_TEMPERATURES" -> Ok(ExtremeTemperatures)
"EXTREME_PRESSURE" -> Ok(ExtremePressure)
"DIVERSE_LIFE" -> Ok(DiverseLife)
"SCARCE_LIFE" -> Ok(ScarceLife)
"FOSSILS" -> Ok(Fossils)
"WEAK_GRAVITY" -> Ok(WeakGravity)
"STRONG_GRAVITY" -> Ok(StrongGravity)
"CRUSHING_GRAVITY" -> Ok(CrushingGravity)
"TOXIC_ATMOSPHERE" -> Ok(ToxicAtmosphere)
"CORROSIVE_ATMOSPHERE" -> Ok(CorrosiveAtmosphere)
"BREATHABLE_ATMOSPHERE" -> Ok(BreathableAtmosphere)
"THIN_ATMOSPHERE" -> Ok(ThinAtmosphere)
"JOVIAN" -> Ok(Jovian)
"ROCKY" -> Ok(Rocky)
"VOLCANIC" -> Ok(Volcanic)
"FROZEN" -> Ok(Frozen)
"SWAMP" -> Ok(Swamp)
"BARREN" -> Ok(Barren)
"TEMPERATE" -> Ok(Temperate)
"JUNGLE" -> Ok(Jungle)
"OCEAN" -> Ok(Ocean)
"RADIOACTIVE" -> Ok(Radioactive)
"MICRO_GRAVITY_ANOMALIES" -> Ok(MicroGravityAnomalies)
"DEBRIS_CLUSTER" -> Ok(DebrisCluster)
"DEEP_CRATERS" -> Ok(DeepCraters)
"SHALLOW_CRATERS" -> Ok(ShallowCraters)
"UNSTABLE_COMPOSITION" -> Ok(UnstableComposition)
"HOLLOWED_INTERIOR" -> Ok(HollowedInterior)
"STRIPPED" -> Ok(Stripped)
_ -> Error(Uncharted)
}
}
pub fn decoder() -> Decoder(WaypointTraitSymbol) {
decode_utils.enum_decoder(parse, "WaypointTraitSymbol")
}