Usually this means you want to build things build on arrays.
>The problem with mmapped files is that they don't always appear at the same address
i.e. you use arrays and then index into the array instead of using pointers.
> So in order to use the standard data-structures, Rust must provide some mechanism to make this possible
Well, arrays exist in Rust. Or you're going to have to be more specific about what you're trying to do.
I want to allocate arrays, maps, etcetera inside the region of a memory mapped file. Then, later, when I mmap the same file to a different region in memory, I want the arrays and maps to still work. That's all.
I imagine this will be possible once the custom allocators work sorts out.
The allocators and data structures would need to support using non-raw-pointer pointers types, including not even platform-pointer sized types.
You could probably get pretty far by copy pasting the standard library containers you're interested in and replace Box with something like OffsetBox which uses indices into your memmap arena instead of pointers to any addressable memory. Of course, implementing OffsetBox is an exercise for the reader. :)
You would probably have to write some unsafe code to get it to work. But it's not a blocker for a project.
After some searching, I found that Microsoft Visual Studio supports something similar, and exactly for the application I had in mind: [1].