3 ms·
Nice to see them plugging along. I don't know where it is on the stabilization timeline but it would be nice to see the ability to move a heap value out of a B
by vvanders 11y ago
Nice to see them plugging along.
I don't know where it is on the stabilization timeline but it would be nice to see the ability to move a heap value out of a Box<T> without using the stable APIs.
I've a few use cases where another languages is calling Rust and I want to return an allocated struct over FFI but std::mem::transmute(Box<T>) has a size mismatch and std::boxed::from_raw/into_raw are unstable.
- steveklabnik 11y agoWho is allocating, Rust or the other language?
- vvanders 11y agoRust is both allocating and deallocating. With the case of using Rust like a library we don't know the lifetime(since it's owned by the calling language) so rather than stuffing it in a 'static context and use some sort if ID for lookup in the API I'd rather just return the raw struct.
- steveklabnik 11y agoYeah, in that case, just waiting for the next release is best. You can do some `transmute` shenanigans in the meantime, but since it's coming so soon, might as well just wait.
- kzrdude 11y agoTake a short snippet of your code pastebin it, bring your question to #rust and we'll help you quickly. FYI, Box::into_raw will be stable in Rust 1.4, next release.
- vvanders 11y agoNice! That's what I was wondering :)
- gkoz 11y ago> std::mem::transmute(Box<T>) has a size mismatch This sounds like trying to fit a fat pointer in a regular one. into_raw won't help with that.