#![allow(clippy::extra_unused_type_parameters)] use dyn_clone::{clone_trait_object, DynClone}; fn assert_clone() {} #[test] fn test_plain() { trait Trait: DynClone {} clone_trait_object!(Trait); assert_clone::>(); assert_clone::>(); assert_clone::>(); assert_clone::>(); } #[test] fn test_type_parameter() { trait Trait: DynClone {} clone_trait_object!( Trait); assert_clone::>>(); } #[test] fn test_generic_bound() { trait Trait, U>: DynClone {} clone_trait_object!(, U> Trait); assert_clone::>>(); } #[test] fn test_where_clause() { trait Trait: DynClone where T: Clone, { } clone_trait_object!( Trait where T: Clone); assert_clone::>>(); } #[test] fn test_lifetime() { trait Trait<'a>: DynClone {} clone_trait_object!(<'a> Trait<'a>); assert_clone::>(); }