#static #assert #macro #impl

assert-impl

用于静态断言类型是否实现了一个特质的宏

4 个版本

使用旧的 Rust 2015

0.1.3 2018年8月10日
0.1.2 2018年8月10日
0.1.1 2018年8月10日
0.1.0 2018年8月9日

#2168Rust 模式

Download history 1445/week @ 2024-03-13 2139/week @ 2024-03-20 2109/week @ 2024-03-27 1175/week @ 2024-04-03 2879/week @ 2024-04-10 2438/week @ 2024-04-17 2030/week @ 2024-04-24 1450/week @ 2024-05-01 1025/week @ 2024-05-08 2089/week @ 2024-05-15 1485/week @ 2024-05-22 2327/week @ 2024-05-29 3266/week @ 2024-06-05 1529/week @ 2024-06-12 1318/week @ 2024-06-19 1204/week @ 2024-06-26

7,657 每月下载量
22 个crate中使用(直接使用15个)22 个crate

MIT 许可证

5KB

用于静态断言类型是否实现了一个特质的宏。

注意:由于 Rust 的限制,此宏只能用在函数体内部。

示例

假设你有以下定义

struct C;
struct Java;
struct JavaScript;
struct Python;
struct Rust;

trait StaticTyping {}
impl StaticTyping for C {}
impl StaticTyping for Java {}
impl StaticTyping for Rust {}

这应该能编译成功

assert_impl!(StaticTyping: C, Java, Rust);
assert_impl!(StaticTyping: C, Java, Rust, );
assert_impl!(!StaticTyping: JavaScript, Python);
assert_impl!(!StaticTyping: JavaScript, Python, );

但是这个应该编译失败

assert_impl!(StaticTyping: JavaScript);
assert_impl!(!StaticTyping: Rust);

lib.rs:

用于静态断言类型是否实现了一个特质的宏。

注意:由于 Rust 的限制,此宏只能用在函数体内部。

示例

假设你有以下定义

struct C;
struct Java;
struct JavaScript;
struct Python;
struct Rust;

trait StaticTyping {}
impl StaticTyping for C {}
impl StaticTyping for Java {}
impl StaticTyping for Rust {}

这应该能编译成功

assert_impl!(StaticTyping: C, Java, Rust);
assert_impl!(StaticTyping: C, Java, Rust, );
assert_impl!(!StaticTyping: JavaScript, Python);
assert_impl!(!StaticTyping: JavaScript, Python, );

但是这些应该编译失败

assert_impl!(StaticTyping: JavaScript);
assert_impl!(!StaticTyping: Rust);

没有运行时依赖