const_guards 0.1.3

An attribute macro for compile time constraints on const generics
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#![allow(incomplete_features)]
#![feature(generic_const_exprs)]
extern crate const_guards;
use const_guards::guard;

fn main() {
    let array: &[usize; 1] = &[0; 1];
    let _: &usize = head(array);
}

#[guard(<const N: usize> {N > 0})]
fn head<'a, T, const N: usize>(array: &'a [T; N]) -> &'a T {
    &array[0]
}