# Allow constructing non\_exhaustive structs using ..Default::default()

**URL:** <https://internals.rust-lang.org/t/allow-constructing-non-exhaustive-structs-using-default-default/13868>\
**Category:** language design\
**Created:** [January 19, 2021, 4:15pm UTC](https://internals.rust-lang.org/t/allow-constructing-non-exhaustive-structs-using-default-default/13868 "2021-01-19T16:15:36Z")\
**Posts on this page:** 1\
**Showing post:** 6

<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:** [January 19, 2021, 6:22pm UTC](https://internals.rust-lang.org/t/allow-constructing-non-exhaustive-structs-using-default-default/13868/6 "2021-01-19T18:22:53Z")

</div>

> [@LoganDark](#):
>
> Why am I not allowed to construct using an existing instance which already has all the fields?

Because of the way FRU desugars it can't access private fields, and `non_exhaustive` doesn't say that you'll only add public fields in the future.

Some past history: [Pre-RFC: Relaxed #[non\_exhaustive] structs - #15 by scottmcm](https://internals.rust-lang.org/t/pre-rfc-relaxed-non-exhaustive-structs/11977/15)

---

_[View the full topic](https://internals.rust-lang.org/t/allow-constructing-non-exhaustive-structs-using-default-default/13868)._
