Rust: Entry APIs should have or_default for V: Default

Created on 5 Sep 2017  路  8Comments  路  Source: rust-lang/rust

The various Entry APIs (e.g., hash_map::Entry, btree_map::Entry) currently have or_insert, and or_insert_with. However, when V: Default, I believe they should also have an or_default. This would make it nicer to work with things like maps of maps, maps of lists, etc. While it's true that this is equivalent to or_insert_with(Default::default), I would argue that or_default is much more readable.

I'd be happy to take a stab at implementing this, but wanted to air the idea first.

A-collections B-unstable C-enhancement T-libs disposition-merge finished-final-comment-period

Most helpful comment

Is there any reason not to just stabilize this?

All 8 comments

Generally, the way the libs team works is "open a PR if a change is small, open an RFC if a change is big." I'm not on the libs team, but this feels pretty small to me; you already almost have an implementation in the comment!

@steveklabnik PR submitted!

An unstable or_default() method was added in #44344. This issue is now the tracking issue for stabilization.

Is there any reason not to just stabilize this?

In Nightly for 6 months, looks good to me to stabilize.

@rfcbot fcp merge

Team member @SimonSapin has proposed to merge this. The next step is review by the rest of the tagged teams:

  • [x] @Kimundi
  • [x] @SimonSapin
  • [x] @alexcrichton
  • [x] @aturon
  • [x] @dtolnay
  • [x] @sfackler
  • [ ] @withoutboats

No concerns currently listed.

Once a majority of reviewers approve (and none object), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

See this document for info about what commands tagged team members can give me.

:bell: This is now entering its final comment period, as per the review above. :bell:

The final comment period is now complete.

Was this page helpful?
0 / 5 - 0 ratings