chiark / gitweb /
hidden: Make an OccultationKindGeneral generic over displacement
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 10 Mar 2021 22:45:28 +0000 (22:45 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 10 Mar 2021 22:45:28 +0000 (22:45 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/hand.rs
src/hidden.rs
src/prelude.rs

index dc9699fc8a754c8338701477ef00bcd5bd5135b1..7551a53892ed0fe1ef9b4221142acf8bba548271 100644 (file)
@@ -184,7 +184,7 @@ impl PieceTrait for Hand {
           let views = OwnerOccultationView {
             owner: player,
             owner_view: OccK::Visible,
-            defview: OccK::Displaced { within: region },
+            defview: OccK::Displaced(region),
           }.views()?;
           dbgc!("claiming got region", &region, &views);
           Ok::<_,IE>((region, views))
index 9856354749a15062472e1600b4843adb215c512e..e24bb9e75d6a4a0ca30740a890fa45e4b539e421 100644 (file)
@@ -46,12 +46,13 @@ pub struct OccultView {
 
 #[derive(Clone,Copy,Debug,Serialize,Deserialize)]
 #[derive(Eq,PartialEq,Hash)]
-pub enum OccultationKind {
+pub enum OccultationKindGeneral<D> {
   Visible,
   Scrambled,
-  Displaced { within: Area },
+  Displaced(D),
   Invisible,
 }
+pub type OccultationKind = OccultationKindGeneral<Area>;
 
 impl Default for OccultationKind {
   fn default() -> Self { OccK::Visible }
@@ -59,7 +60,7 @@ impl Default for OccultationKind {
 
 impl Ord for OccultationKind {
   fn cmp(&self, rhs: &Self) -> Ordering {
-    fn level(k: &OccK) -> u8 { use OccultationKind::*; match k {
+    fn level(k: &OccK) -> u8 { use OccKG::*; match k {
       Visible       => 0,
       Scrambled     => 1,
       Displaced{..} => 2,
index 4b34c4baf14d6feb407ae23e3675e3a440db58a0..d06199f3988bea7957af3469665087f75928f322 100644 (file)
@@ -160,6 +160,7 @@ pub type SpE = SpecError;
 
 // hidden.rs
 pub type OccK = OccultationKind;
+pub use OccultationKindGeneral as OccKG;
 
 // updates.rs
 pub type PUE = PreparedUpdateEntry;