Crates.io | assert-impl |
lib.rs | assert-impl |
version | 0.1.3 |
source | src |
created_at | 2018-08-09 23:45:12.247453 |
updated_at | 2018-08-10 10:49:53.814774 |
description | Macro for static assert types implement a trait or not |
homepage | |
repository | https://github.com/upsuper/assert-impl |
max_upload_size | |
id | 78600 |
size | 5,687 |
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.
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 this should fail to build:
assert_impl!(StaticTyping: JavaScript);
assert_impl!(!StaticTyping: Rust);