12 releases
Uses old Rust 2015
0.4.2 | May 25, 2017 |
---|---|
0.4.1 | Apr 23, 2015 |
0.3.0 | Apr 18, 2015 |
0.2.5 | Apr 18, 2015 |
0.1.1 | Nov 28, 2014 |
#1891 in Rust patterns
85,319 downloads per month
Used in 276 crates
(10 directly)
7KB
87 lines
Unsafe-Any
Convenience traits for unsafe downcasting from trait objects to concrete types.
Overview
This crate defines two new traits UncheckedAnyDowncast
and UncheckedAnyMutDowncast
,
which define methods for downcasting to any type that implements Any
from
implemented trait objects.
It also defines two convenience implementations of these traits for &'a Any
and &'a mut Any
, which are the most common trait objects that you might
downcast from.
Example:
let a = box 7u as Box<Any>;
unsafe { assert_eq!(*a.downcast_ref_unchecked::<uint>(), 7u); }
License
MIT
lib.rs
:
Traits for unsafe downcasting from trait objects to & or &mut references of concrete types. These should only be used if you are absolutely certain of the type of the data in said trait object - there be dragons etc.
Originally inspired by https://github.com/chris-morgan/anymap
and the implementation of std::any::Any
.
Dependencies
~7KB