Why do you use a reference? I don't know exactly what you will use the Voxel struct for, but I'd start simple, with something without references, like:
A general of thumb for Rust: don't put references in types.
More accurately, don't try to use lifetime parameters (like 'a) in anything "long lived" (survives a function call.) As a feature it's useful, but it's more for making nice to use and efficient APIs, not something "normal" application code should find itself doing.
I'm curious what the path you went in to get this type: it would be unfortunate if the error messages guided you to the code you posted then gave up on you. Perhaps there is a better suggestion that it could make?
i think it was partially error messages, and partially me trying things out. in terms of error messages it would be nice if they hinted another way of doing recursive structs, but to be fair to me if i only scrolled down a bit further on stackoverflow i could have found the solution myself