mindustry logic execution, map- and schematic- parsing and rendering
Implement Display for item storage
KosmosPrime 2023-01-24
parent bd238c2 · commit ed8e684
-rw-r--r--src/item/mod.rs34
-rw-r--r--src/item/storage.rs15
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
{