In Rust 1.0, the following works:
let mut state = [[0u8; 4]; 6];
state[0][1] = 42;
Note that the length of the interior segment is an integral part of the type. For example, you can reference (and pass) state
as follows:
let a: &[[u8; 4]] = &state;
but not without specifying the fixed length of the sub-array. If you need variable length sub-arrays you may need to do something like this:
let x: [Box<[u8]>; 3] = [
Box::new([1, 2, 3]),
Box::new([4]),
Box::new([5, 6])
];
let y: &[Box<[u8]>] = &x;