any_handle provides a reference-counting smart pointer type, AnyHandle<T>,
which can store a value of a type T. The special AnyHandle<dyn Any> allows for
downcasting to any other AnyHandle<T: Any> type.
Internally, an AnyHandle is an Arc<RwLock<Box<dyn Any>>>, and matches the
reference-counting behaviour of Arc as well as the many-readers-or-one-writer
thread safety model of RwLock.
```rust use any_handle::{AnyHandle, Any}; struct SomeStruct (i32);
fn main() {
// Initialize a handle with an unknown type.
// If you want to pass in a Box#![feature(trait_upcasting)], unfortunately.
let handle: AnyHandle
// ...and when we retrieve it later:
let mut handle: AnyHandle<SomeStruct> = handle.into()?;
handle.write().do_mut_things_with();
handle.read().do_things_with();
} ```