An open API service indexing awesome lists of open source software.

https://github.com/mintlu8/sidecast

Dynamic cast between trait objects.
https://github.com/mintlu8/sidecast

Last synced: 10 months ago
JSON representation

Dynamic cast between trait objects.

Awesome Lists containing this project

README

          

# sidecast

Dynamic cast between trait objects.

## Example

```rust
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 {}

impl_sidecast!([T: Card] MyGenericCard[T] => (dyn Display, dyn MinionCard, dyn Serialize));
```