# Pre-RFC: Relaxed #\[non\_exhaustive\] structs

**URL:** <https://internals.rust-lang.org/t/pre-rfc-relaxed-non-exhaustive-structs/11977>\
**Category:** language design\
**Created:** [March 14, 2020, 4:43am UTC](https://internals.rust-lang.org/t/pre-rfc-relaxed-non-exhaustive-structs/11977 "2020-03-14T04:43:48Z")\
**Posts on this page:** 1\
**Showing post:** 15

<div class="post-metadata">

**Author:** ![scottmcm](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/scottmcm/32/2355_2.png) [@scottmcm](https://internals.rust-lang.org/u/scottmcm)\
**Post date:** [March 18, 2020, 10:26pm UTC](https://internals.rust-lang.org/t/pre-rfc-relaxed-non-exhaustive-structs/11977/15 "2020-03-18T22:26:21Z")

</div>

> [@Aloso](#):
>
> I think that would be much better than the current situation. Is there any example where this change could break code?

Unfortunately yes, even though this has been coming up for 4 years:

> [@Proto-RFC: Expanded functional record update](https://internals.rust-lang.org/t/proto-rfc-expanded-functional-record-update/3077/2):
>
> I made some prototype for the alternative FRU desugaring ([https://github.com/petrochenkov/rust/tree/fru](https://github.com/petrochenkov/rust/tree/fru)). As you can see the breakage is pretty significant (see the second commit). In addition there are cases where the current semantics is actually desirable. FRU from borrowed contexts, you can’t move the whole value, but can copy individual Copy fields. Situations when some fields are simply copied, but others are somehow copied-and-transformed (see e.g. fold.rs in my patch). This cannot be…

---

_[View the full topic](https://internals.rust-lang.org/t/pre-rfc-relaxed-non-exhaustive-structs/11977)._
