| //@ compile-flags: -Cdebuginfo=2 --crate-type=lib | |
| //@ build-pass | |
| #![feature(adt_const_params)] | |
| const N_ISLANDS: usize = 4; | |
| pub type Matrix = [[usize; N_ISLANDS]; N_ISLANDS]; | |
| const EMPTY_MATRIX: Matrix = [[0; N_ISLANDS]; N_ISLANDS]; | |
| const fn to_matrix() -> Matrix { | |
| EMPTY_MATRIX | |
| } | |
| const BRIDGE_MATRIX: [[usize; N_ISLANDS]; N_ISLANDS] = to_matrix(); | |
| pub struct Walk<const CURRENT: usize, const REMAINING: Matrix> { | |
| _p: (), | |
| } | |
| impl Walk<0, BRIDGE_MATRIX> { | |
| pub const fn new() -> Self { | |
| Self { _p: () } | |
| } | |
| } |