in crates/ratchet-core/src/shape.rs [273:283]
fn try_into(self) -> Result<[usize; $N], Self::Error> {
if self.0.len() == $N {
let mut arr = [0; $N];
for (i, &item) in self.0.iter().enumerate().take($N) {
arr[i] = item;
}
Ok(arr)
} else {
Err(anyhow::anyhow!("Shape has length {} but expected {}", self.0.len(), $N))
}
}