mindustry logic execution, map- and schematic- parsing and rendering
Implement Display for item storage
| -rw-r--r-- | src/item/mod.rs | 34 | ||||
| -rw-r--r-- | src/item/storage.rs | 15 |
2 files changed, 49 insertions, 0 deletions
diff --git a/src/item/mod.rs b/src/item/mod.rs index e52a7e4..8e25b62 100644 --- a/src/item/mod.rs +++ b/src/item/mod.rs @@ -1,3 +1,5 @@ +use std::fmt; + use crate::content::content_enum; pub mod storage; @@ -30,3 +32,35 @@ content_enum! DormantCyst => "dormant-cyst", } } + +impl fmt::Display for Type +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result + { + match self + { + Self::Copper => f.write_str("Copper"), + Self::Lead => f.write_str("Lead"), + Self::Metaglass => f.write_str("Metaglass"), + Self::Graphite => f.write_str("Graphite"), + Self::Sand => f.write_str("Sand"), + Self::Coal => f.write_str("Coal"), + Self::Titanium => f.write_str("Titanium"), + Self::Thorium => f.write_str("Thorium"), + Self::Scrap => f.write_str("Scrap"), + Self::Silicon => f.write_str("Silicon"), + Self::Plastanium => f.write_str("Plastanium"), + Self::PhaseFabric => f.write_str("Phase Fabric"), + Self::SurgeAlloy => f.write_str("Surge Alloy"), + Self::SporePod => f.write_str("Spore Pod"), + Self::BlastCompound => f.write_str("Blast Compound"), + Self::Pyratite => f.write_str("Pyratite"), + Self::Beryllium => f.write_str("Beryllium"), + Self::Tungsten => f.write_str("Tungsten"), + Self::Oxide => f.write_str("Oxide"), + Self::Carbide => f.write_str("Carbide"), + Self::FissileMatter => f.write_str("Fissile Matter"), + Self::DormantCyst => f.write_str("Dormant Cyst"), + } + } +} diff --git a/src/item/storage.rs b/src/item/storage.rs index d78273c..5f57b75 100644 --- a/src/item/storage.rs +++ b/src/item/storage.rs @@ -322,6 +322,21 @@ impl PartialEq for Storage } } +impl fmt::Display for Storage +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result + { + let mut first = true; + for (ty, cnt) in self.iter_nonzero() + { + if first {first = false;} + else {f.write_str(", ")?;} + write!(f, "{cnt} {ty}")?; + } + Ok(()) + } +} + #[derive(Clone, Copy, Debug, Eq, PartialEq)] pub struct TryAddError { |