5 releases
0.1.0 | Jan 10, 2022 |
---|---|
0.0.8 | Dec 7, 2021 |
0.0.7 | Nov 29, 2021 |
0.0.6 | Nov 29, 2021 |
0.0.4 | Nov 29, 2021 |
#20 in #questions
2,185 downloads per month
13KB
102 lines
module::instance_of
Macro to answer the question: does it implement a trait?
This solution has a limitation:
- In case enity is a function and trat is
Fn
/FnMut
/FnOnce
which current entity does not implement you will get compile-time error instead offalse
.
This is alias for module::implements.
Sample
use instance_of::*;
dbg!( instance_of!( 13_i32 => Copy ) );
// < instance_of!( 13_i32 => Copy ) : true
dbg!( instance_of!( Box::new( 13_i32 ) => Copy ) );
// < instance_of!( 13_i32 => Copy ) : false
To add to your project
cargo add implements
Try out from the repository
git clone https://github.com/Wandalen/wTools
cd wTools
cd sample/rust/implements_trivial
cargo run
lib.rs
:
Macro to answer the question: does it implement a trait?
This solution has a limitation:
- In case enity is a function and trat is
Fn
/FnMut
/FnOnce
which current entity does not implement you will get compile-time error instead offalse
.