#traits #general-purpose #fundamental #macro #questions #entity #compile-time

no-std dev implements

宏,用于回答:它是否实现了特质?

17 个版本 (8 个重大更改)

0.8.0 2024 年 5 月 11 日
0.7.0 2024 年 3 月 16 日
0.6.0 2024 年 3 月 16 日
0.3.0 2023 年 10 月 28 日
0.0.6 2021 年 11 月 29 日

#2433开发工具

Download history 190/week @ 2024-05-01 439/week @ 2024-05-08 202/week @ 2024-05-15 246/week @ 2024-05-22 333/week @ 2024-05-29 346/week @ 2024-06-05 240/week @ 2024-06-12 257/week @ 2024-06-19 269/week @ 2024-06-26 22/week @ 2024-07-03 171/week @ 2024-07-10 280/week @ 2024-07-17 268/week @ 2024-07-24 196/week @ 2024-07-31 199/week @ 2024-08-07 151/week @ 2024-08-14

860 每月下载量
92 个 Crates 中使用 (直接使用 2 个)

MIT 许可证

11KB
95

模块 :: implements

experimental rust-status docs.rs Open in Gitpod discord

宏,用于回答:它是否实现了特质?

此解决方案有一个限制

  • 如果实体是一个函数且特质是 Fn/FnMut/FnOnce 且当前实体未实现该特质,您将收到编译时错误,而不是 false

基本用法

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
cargo run --example implements_trivial

无运行时依赖