downcast   ![Latest Version]

A trait (& utilities) for downcasting trait objects back to their original types.

link to API documentation

example usage

Add to your Cargo.toml:

toml [dependencies] downcast = "0.12"

Add to your crate root:

```rust

[macro_use]

extern crate downcast; ```

build features

faq

Q: I'm getting the size for values of type XXX cannot be known at compile time errors, what am i doing wrong?

A: Make sure you use the corresponding Any bound along with the Downcast traits. So, Any for Downcast and AnySync for DowncastSync.

Q: Can i cast trait objects to trait objects?

A: No, that is currently no possible in safe rust - and unsafe solutions are very tricky, as well. If you found a solution, feel free to share it!

Q: What is the difference between this and the downcast-rs crate on crates.io?

A: At the moment, there isn't one, really. There was an unfortunate naming clash. You may consider using the other crate, as it is more actively maintained. This one is considered feature-complete and frozen in functionality. Hopefully, one day, the Rust language will make downcasting easier and we will need neither of these crates anymore!