fn count(&self) -> usize { 1 }
fn load(&self, i: usize, gpc: &mut GPiece, ir: &InstanceRef)
-> Result<PieceSpecLoaded, SpecError>;
+ fn load_occult(&self) -> Result<Box<dyn OccultedPieceTrait>, SpecError> {
+ throw!(SpE::ComplexPieceWhereSimpleRequired)
+ }
}
// ========== implementations ==========
fn itemname(&self) -> &str { &self.itemname }
}
+#[typetag::serde(name="LibItem")]
+impl OccultedPieceTrait for Item {
+ #[throws(IE)]
+ fn svg(&self, f: &mut Html, _id: VisiblePieceId) {
+ self.svg_face(f, default())?;
+ }
+ #[throws(IE)]
+ fn describe_html(&self) -> Html {
+ self.describe_face(default())?
+ }
+}
+
static SHAPELIBS: RwLock<Option<Registry>> = const_rwlock(None);
pub fn libs_list() -> Vec<String> {
-> PieceSpecLoaded {
self.find_load()?.into()
}
+ #[throws(SpecError)]
+ fn load_occult(&self) -> Box<dyn OccultedPieceTrait> {
+ self.find_load()?.0 as Box<dyn OccultedPieceTrait>
+ }
}
#[typetag::serde(name="LibList")]