chiark / gitweb /
Make PieceBaseTrait dyn_upcast-able
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 14 Apr 2022 20:01:09 +0000 (21:01 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 15 Apr 2022 19:39:28 +0000 (20:39 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/clock.rs
src/deck.rs
src/gamestate.rs
src/hand.rs
src/pieces.rs
src/shapelib.rs

index 9bc52e7ff2133907c9256625cf4d8c1b2a9d50ca..228c3c774a7e80845b1bea351f45cd92c3be6f62 100644 (file)
@@ -432,6 +432,7 @@ impl OutlineTrait for Clock {
   }
 }
 
+#[dyn_upcast]
 impl PieceBaseTrait for Clock {
   fn nfaces(&self) -> RawFaceId { 1 }
 
index f653a11c62c90d1bcef786c0ad4bdab9672781b3..d466eee30278612ca9738df30405d285e1e6a255 100644 (file)
@@ -96,6 +96,7 @@ impl Deck {
   }
 }
 
+#[dyn_upcast]
 impl PieceBaseTrait for Deck {
   fn nfaces(&self) -> RawFaceId { 1 }
 
index 50f4ac186532f4f4fa17a487eb07c581834d7f0e..03947302aab97aa9f6beb9c42fb88469f0af15a8 100644 (file)
@@ -173,6 +173,7 @@ pub struct UoDescription {
   pub wrc: WhatResponseToClientOp,
 }
 
+#[dyn_upcast]
 pub trait PieceBaseTrait: OutlineTrait + Send + Debug + 'static {
   /// By convention, occult face is nfaces-1
   fn nfaces(&self) -> RawFaceId;
index 6430c2a76277f8a87cc874c601a31381babbfb59..42994149c3b70d48ee8126b641fb588c48871bc1 100644 (file)
@@ -146,6 +146,7 @@ impl Behaviour {
   }
 }
 
+#[dyn_upcast]
 impl PieceBaseTrait for Hand {
   fn nfaces(&self) -> RawFaceId { 1 }
 
index ab38f3c53b82d1b1e7ce48da1a78f9c1a261622a..33263627d9c30505264aa1a2b856542179bdd440 100644 (file)
@@ -126,6 +126,7 @@ impl<Desc, Outl:'static> OutlineTrait for GenericSimpleShape<Desc, Outl>
 }
 //    let edge_attrs = format!(r##"stroke-width="" stroke"##
 
+#[dyn_upcast]
 impl PieceBaseTrait for SimpleShape {
   fn nfaces(&self) -> RawFaceId { self.count_faces() }
 
index 7a85c1f478467c4f974cce6eff8ddfd8ca94a142..b38ee2939af12710e30c4a7340ab47a2b3c71a8e 100644 (file)
@@ -224,6 +224,7 @@ impl OutlineTrait for ItemInertForOcculted { delegate! { to self.outline {
   fn thresh_dragraise(&self) -> Result<Option<Coord>, IE>;
   fn bbox_approx(&self) -> Result<Rect, IE>;
 }}}
+#[dyn_upcast]
 impl PieceBaseTrait for ItemInertForOcculted {
   fn nfaces(&self) -> RawFaceId { 1 }
   fn itemname(&self) -> &str { &self.itemname.as_str() }
@@ -369,6 +370,7 @@ impl Item {
   }
 }
 
+#[dyn_upcast]
 impl PieceBaseTrait for Item {
   fn nfaces(&self) -> RawFaceId {
     (self.faces.len()