Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Rust could generate a bespoke internal proxy type.


That would still require dynamic dispatch of some kind.


But it wouldn’t require a heap allocation.


Where is the proxy implementation going to go if not the heap?


The proxy object would have statically known size (maximum of the size of the types it dispatches between, plus some metadata such as a vtable pointer or an enum discriminant). Now, because you know the size statically, you can store it in the stack.


Until then, we use `Either` (https://stackoverflow.com/a/50204370/155423)


Tangentially, do you know why Rust never included an Either type? We have Result, which is great, but Either is useful for more things than errors (though that seems to be it's main use).


We had it for a long time, as well as result, and literally no code used it, so we took it out.

There’s a crate on crates.io for it if you want to use it for something.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: