}
}
+#[dyn_upcast]
impl PieceBaseTrait for Clock {
fn nfaces(&self) -> RawFaceId { 1 }
}
}
+#[dyn_upcast]
impl PieceBaseTrait for Deck {
fn nfaces(&self) -> RawFaceId { 1 }
pub wrc: WhatResponseToClientOp,
}
+#[dyn_upcast]
pub trait PieceBaseTrait: OutlineTrait + Send + Debug + 'static {
/// By convention, occult face is nfaces-1
fn nfaces(&self) -> RawFaceId;
}
}
+#[dyn_upcast]
impl PieceBaseTrait for Hand {
fn nfaces(&self) -> RawFaceId { 1 }
}
// let edge_attrs = format!(r##"stroke-width="" stroke"##
+#[dyn_upcast]
impl PieceBaseTrait for SimpleShape {
fn nfaces(&self) -> RawFaceId { self.count_faces() }
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() }
}
}
+#[dyn_upcast]
impl PieceBaseTrait for Item {
fn nfaces(&self) -> RawFaceId {
(self.faces.len()