# Representing closed trait objects as enums

**URL:** <https://internals.rust-lang.org/t/representing-closed-trait-objects-as-enums/3981>\
**Category:** language design\
**Created:** [September 2, 2016, 12:59am UTC](https://internals.rust-lang.org/t/representing-closed-trait-objects-as-enums/3981 "2016-09-02T00:59:24Z")\
**Posts on this page:** 2\
**Page:** 2

<div class="post-metadata">

**Author:** ![spivee](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/spivee/32/2844_2.png) [@spivee](https://internals.rust-lang.org/u/spivee)\
**Post date:** [December 2, 2017, 5:42am UTC](https://internals.rust-lang.org/t/representing-closed-trait-objects-as-enums/3981/21 "2017-12-02T05:42:27Z")

</div>

This would be so cool! For one thing a Vec/Hashmap full of enums would run so much faster than a Vec\<Box\> etc. (values appear in eachother’s cache lines)

I think a lot of use cases I care about however, benefit from additional Ref and RefMut enums anyway, so I might prefer to create some macroes to generate these types together.

But yes closed traits represent big cache optimizations that are currently a pain to implement! ❤

---

<div class="post-metadata">

**Author:** ![withoutboats](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/withoutboats/32/4560_2.png) [@withoutboats](https://internals.rust-lang.org/u/withoutboats)\
**Post date:** [March 25, 2019, 8:26am UTC](https://internals.rust-lang.org/t/representing-closed-trait-objects-as-enums/3981/22 "2019-03-25T08:26:50Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

[Previous page](https://internals.rust-lang.org/t/representing-closed-trait-objects-as-enums/3981.md?page=1)
