Crate assert_impl[−][src]
Macro for static assert that types implement a trait or not.
Note: this macro can only be used inside function body due to restriction of Rust.
Example
Assuming you have the following definitions:
struct C; struct Java; struct JavaScript; struct Python; struct Rust; trait StaticTyping {} impl StaticTyping for C {} impl StaticTyping for Java {} impl StaticTyping for Rust {}
This should build:
assert_impl!(StaticTyping: C, Java, Rust); assert_impl!(StaticTyping: C, Java, Rust, ); assert_impl!(!StaticTyping: JavaScript, Python); assert_impl!(!StaticTyping: JavaScript, Python, );
But these should fail to build:
ⓘThis example deliberately fails to compile
assert_impl!(StaticTyping: JavaScript);
ⓘThis example deliberately fails to compile
assert_impl!(!StaticTyping: Rust);
Macros
assert_impl |