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日 |
#2168 在 Rust 模式 中
7,657 每月下载量
在 22 个crate中使用(直接使用15个)22 个crate
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);