All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Updated how code conditioned on the
sync
flag is written in the crate documentation to work around a crates.io doc rendering bug.
- Gated the sync/
Arc
downcasting functionality behind a newsync
feature that is enabled by default. - Added a new
DowncastSend
trait to support downcasting toBox<Any + Send>
and madeDowncastSync
extend this trait. - Added downcasting support to
Box<Any + Send + Sync>
toDowncastSync
.
- Updated minimum supported rust version 1.56 to enforce the
rustdoc::bare_urls
lint (1.53) and switch to edition 2021 (1.56).
- Consolidated bounds on the trait to avoid triggering Clippy's
multiple_bound_locations
lint.
no_std
support.- CI with GitHub actions.
- Updated minimum supported rust version 1.36 for stable access to
alloc
.
- Used
dyn Trait
syntax everywhere since it is supported by downcast-rs's min-supported rust version (1.33).
- Support for downcasting
Rc<Trait>
andArc<Trait>
.
- Minimum supported Rust version upped to 1.33 to support
Rc
andArc
in the receiver position.
- Added
local_inner_macros
toimpl_downcast
to allow invoking via namespace.
- Use global path for Result, Option, Box in macro expansion to avoid name conflicts with locally-defined symbols.
- Support for downcasting
Box<Trait>
toBox<Concrete>
.
- Don't use types as traits in macros.
- Cleaned up README and published 1.0.
- Support for associated types as well.
- Downcast functionality to downcast borrowed mutable and immutable trait objects to concrete types. Supports concrete type parameters and type variables with optional constraints.