add array::FillError similar to array::IntoIter#75717
Closed
lcnr wants to merge 4 commits intorust-lang:masterfrom
Closed
add array::FillError similar to array::IntoIter#75717lcnr wants to merge 4 commits intorust-lang:masterfrom
array::FillError similar to array::IntoIter#75717lcnr wants to merge 4 commits intorust-lang:masterfrom
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Taken from #69985 without actually implementing
FromIteratorso we can merge this without having to worry aboutstabilizing anything.
While implementing new methods for arrays, this is very often needed and we otherwise need to reimplement this in each new method.
A huge thanks to @lperlaki, who has done most of the work necessary for this PR as part of #69985.
To summarize, this PR adds
struct array::FillError<T, const N: usize>, which is intended as part of the return type ofFromIteratorfor arrays, once we implement this (requires at least stablemin_const_generics). The current concept is to implementFromIteratorforResult<[T; N], FillError<T, N>>, returning aFillErrorif the iterator had less thanNelements.Similar to
IntoIter, we don't yet actually implementFromIteratorbut instead add a probably permanently unstablenewmethod toFillError, meaning that one can now writeFillError::new().fill(iter).unwrap()to collect into an array, which was previously not cleanly possible.