19 releases (10 breaking)

0.10.0 Oct 30, 2024
0.8.0 May 11, 2024
0.7.0 Mar 16, 2024
0.3.0 Oct 28, 2023
0.0.6 Nov 29, 2021

#2481 in Development tools

Download history 216/week @ 2024-07-22 239/week @ 2024-07-29 182/week @ 2024-08-05 219/week @ 2024-08-12 129/week @ 2024-08-19 224/week @ 2024-08-26 124/week @ 2024-09-02 340/week @ 2024-09-09 211/week @ 2024-09-16 318/week @ 2024-09-23 146/week @ 2024-09-30 69/week @ 2024-10-07 246/week @ 2024-10-14 193/week @ 2024-10-21 292/week @ 2024-10-28 189/week @ 2024-11-04

924 downloads per month
Used in 77 crates (2 directly)

MIT license

9KB
99 lines

Module :: implements

experimental rust-status docs.rs Open in Gitpod discord

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

Basic use-case

use implements::*;

dbg!( implements!( 13_i32 => Copy ) );
// < implements!( 13_i32 => Copy ) : true
dbg!( implements!( Box::new( 13_i32 ) => Copy ) );
// < implements!( 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
cargo run --example implements_trivial

No runtime deps

Features