Macro to answer the question: does it implement a trait?
This solution has a limitation:
- In case entity is a function and trait is
Fn
/FnMut
/FnOnce
which current entity does not implement you will get compile-time error instead offalse
.
use implements::*;
dbg!( implements!( 13_i32 => Copy ) );
// < implements!( 13_i32 => Copy ) : true
dbg!( implements!( Box::new( 13_i32 ) => Copy ) );
// < implements!( 13_i32 => Copy ) : false
cargo add implements
git clone https://github.com/Wandalen/wTools
cd wTools
cd sample/rust/implements_trivial
cargo run