Crates.io | sidecast |
lib.rs | sidecast |
version | 0.1.0 |
created_at | 2025-08-14 09:50:22.786698+00 |
updated_at | 2025-08-14 09:50:22.786698+00 |
description | Dynamic cast between trait objects. |
homepage | |
repository | https://github.com/mintlu8/sidecast |
max_upload_size | |
id | 1794678 |
size | 20,648 |
Dynamic cast between trait objects.
trait Card: SideCast {}
impl_sidecast!(dyn Card);
trait MinionCard: Card {}
trait SpellCard: Card {}
struct MyMinionCard {}
impl Card for MyMinionCard {}
impl MinionCard for MyMinionCard {}
impl_sidecast!(MyMinionCard => (dyn Display, dyn MinionCard, dyn Serialize));
struct MyGenericCard<T: Card> {}
impl_sidecast!([T: Card] MyGenericCard[T] => (dyn Display, dyn MinionCard, dyn Serialize));