Based on comments, it seems clear that what I’m trying to do simply isn’t possible with Rust. The lifetimes of the references I’m trying to use can’t be proven safe, so Rust won’t allow it. I need to switch to some design involving heap allocations and moves/copies of some data.