Clone trait that is object-safe
This crate provides a DynClone
trait that can be used in trait objects, and a
clone_box
function that can clone any sized or dynamically sized
implementation of DynClone
. Types that implement the standard library's
std::clone::Clone
trait are automatically usable by a DynClone
trait
object.
The signature of clone_box
is:
Example
use DynClone;
This crate includes a macro for generating the implementation impl std::clone::Clone for Box<dyn MyTrait>
in terms of dyn_clone::clone_box
:
// As before.
clone_trait_object!;
// Now data structures containing Box<dyn MyTrait> can derive Clone:
Check out the dyn-clonable crate which provides the same Clone impl for
Box<dyn MyTrait>
in a more concise attribute form.