"alloc-no-stdlib",
]
+[[package]]
+name = "ambassador"
+version = "0.3.0"
+source = "git+https://github.com/ijackson/ambassador?rev=e4775f906a7987b294e87c05ab1e923de0cf6a3a#e4775f906a7987b294e87c05ab1e923de0cf6a3a"
+dependencies = [
+ "bytemuck",
+ "itertools",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
[[package]]
name = "ansi_term"
version = "0.12.1"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee1e0e2125faccb856bf10b0a9dfa89c4c718d05ef85580dfefbdf1c422ef801"
+dependencies = [
+ "bytemuck_derive",
+]
+
+[[package]]
+name = "bytemuck_derive"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "562e382481975bc61d11275ac5e62a19abd00b0547d99516a415336f183dcd0e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
[[package]]
name = "byteorder"
name = "otter"
version = "1.0.0"
dependencies = [
+ "ambassador",
"anyhow",
"async-condvar-fair",
"backtrace",
xmlparser = "0.13"
zip="0.6"
+ambassador = { version = "0.3", git = "https://github.com/ijackson/ambassador", rev="e4775f906a7987b294e87c05ab1e923de0cf6a3a" }
+
async-condvar-fair = { version="0.2", features=["parking_lot_0_12"] }
const-default = { version="1", features=["derive" ] }
enum-map = { version="2" , features=["serde" ] }
}
impl_downcast!(PieceXData);
+#[ambassador::delegatable_trait]
#[enum_dispatch]
#[dyn_upcast]
pub trait OutlineTrait: Debug + Sync + Send + 'static {
pub wrc: WhatResponseToClientOp,
}
+#[ambassador::delegatable_trait]
#[dyn_upcast]
pub trait PieceBaseTrait: OutlineTrait + Send + Debug + 'static {
/// By convention, occult face is nfaces-1
fn itemname(&self) -> &str;
}
+#[ambassador::delegatable_trait]
#[typetag::serde] // usual variable: p
pub trait PieceTrait: PieceBaseTrait + Send + Debug + 'static {
fn add_ui_operations(&self, _y: ShowUnocculted,