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

Download history 20/week @ 2024-07-28 7/week @ 2024-09-22

2,185 downloads per month

MIT license

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 of false.

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 of false.

Dependencies