-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
proposal for str::from_bytes_with_error_cb #1675
Labels
C-enhancement
Category: An issue proposing an enhancement or a PR with one.
E-easy
Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.
Comments
I don't have a strong opinion about it, but I guess I would prefer to wait until somebody actually needs something like this. |
Not RFC-level proposal. Just a library wishlist item. Might accept a patch; but it seems a bit overwrought. Anyone need such a thing yet? |
I think this is subsumed in #1945; we might well adopt a dynamic-handler mechanism while working through that bug. This would be a special case. |
Merged
matthiaskrgr
added a commit
to matthiaskrgr/rust
that referenced
this issue
Sep 11, 2023
Update books ## rust-lang/edition-guide 1 commits in 2751bdcef125468ea2ee006c11992cd1405aebe5..34fca48ed284525b2f124bf93c51af36d6685492 2023-09-06 20:34:00 UTC to 2023-09-06 20:34:00 UTC - Update Rust 2018 "Path and module system changes" for Rust 1.72 (rust-lang/edition-guide#285) ## rust-lang/nomicon 2 commits in 388750b081c0893c275044d37203f97709e058ba..e3f3af69dce71cd37a785bccb7e58449197d940c 2023-09-11 15:57:05 UTC to 2023-09-11 15:55:35 UTC - specify which integer overflows we mean (rust-lang/nomicon#419) - remove 'fail to call destructors' from okay-list (rust-lang/nomicon#420) ## rust-lang/reference 4 commits in d43038932adeb16ada80e206d4c073d851298101..ee7c676fd6e287459cb407337652412c990686c0 2023-09-09 20:08:06 UTC to 2023-08-16 16:59:33 UTC - Specify bit validity and padding of some types (rust-lang/reference#1392) - implementations.md typo fix (rust-lang/reference#1399) - Update section on default layout for `repr(Rust)` (rust-lang/reference#1396) - conditional-compilation.md: Mention the "none" target_os value (rust-lang/reference#1395) ## rust-lang/rust-by-example 4 commits in 07e0df2f006e59d171c6bf3cafa9d61dbeb520d8..c954202c1e1720cba5628f99543cc01188c7d6fc 2023-08-22 18:49:29 UTC to 2023-08-22 18:46:56 UTC - Improve transparency of 5_i32 versus 5i32 (rust-lang/rust-by-example#1707) - Removed redundant comma (rust-lang/rust-by-example#1735) - Fixed link to Functions (rust-lang/rust-by-example#1734) - Pedantic `'static` lifetime corrections (rust-lang/rust-by-example#1732) ## rust-lang/rustc-dev-guide 25 commits in b123ab4754127d822ffb38349ce0fbf561f1b2fd..08bb147d51e815b96e8db7ba4cf870f201c11ff8 2023-09-11 10:36:36 UTC to 2023-08-18 21:13:31 UTC - make link more pleasant to eye too (rust-lang/rustc-dev-guide#1778) - The current playground link used in the page of MIR shows a optimized… (rust-lang/rustc-dev-guide#1789) - Add section about building an optimized version of `rustc` (rust-lang/rustc-dev-guide#1787) - Set max line length in `.editorconfig` to 100 (rust-lang/rustc-dev-guide#1788) - Update minor how-to-build-and-run.md spelling mistake (rust-lang/rustc-dev-guide#1785) - add sections in 'using git' (rust-lang#1675) (rust-lang/rustc-dev-guide#1784) - link std-dev-guide from landing page (rust-lang#1699) (rust-lang/rustc-dev-guide#1783) - Reword sentence about using `./x` over `./x.py` (rust-lang/rustc-dev-guide#1782) - remove (excessive) indentation (rust-lang/rustc-dev-guide#1781) - coverage tests have moved, twice (rust-lang/rustc-dev-guide#1780) - remove extraneous word (rust-lang/rustc-dev-guide#1779) - llvm updates (rust-lang/rustc-dev-guide#1761) - make link more pleasant to eye (rust-lang/rustc-dev-guide#1777) - date-check: test suites/classes using "revisions" (rust-lang/rustc-dev-guide#1738) - share link target (rust-lang/rustc-dev-guide#1740) - indicate full hierarchy of config option (rust-lang/rustc-dev-guide#1776) - remove stray word (rust-lang/rustc-dev-guide#1773) - it is lower-case (rust-lang/rustc-dev-guide#1772) - Suggest enabling patch-binaries-for-nix in `shell.nix` (rust-lang/rustc-dev-guide#1774) - Add additional licensing concerns to docs (rust-lang/rustc-dev-guide#1775) - Fix broken MD link format (rust-lang/rustc-dev-guide#1771) - update internal terminology: Substs -> GenericArgs (rust-lang/rustc-dev-guide#1769) - Update suggested.md : missing word (rust-lang/rustc-dev-guide#1770) - Update outdated doc for types (rust-lang/rustc-dev-guide#1768) - Add dropck documentation (rust-lang/rustc-dev-guide#1767)
rust-timer
added a commit
to rust-lang-ci/rust
that referenced
this issue
Sep 11, 2023
Rollup merge of rust-lang#115761 - rustbot:docs-update, r=ehuss Update books ## rust-lang/edition-guide 1 commits in 2751bdcef125468ea2ee006c11992cd1405aebe5..34fca48ed284525b2f124bf93c51af36d6685492 2023-09-06 20:34:00 UTC to 2023-09-06 20:34:00 UTC - Update Rust 2018 "Path and module system changes" for Rust 1.72 (rust-lang/edition-guide#285) ## rust-lang/nomicon 2 commits in 388750b081c0893c275044d37203f97709e058ba..e3f3af69dce71cd37a785bccb7e58449197d940c 2023-09-11 15:57:05 UTC to 2023-09-11 15:55:35 UTC - specify which integer overflows we mean (rust-lang/nomicon#419) - remove 'fail to call destructors' from okay-list (rust-lang/nomicon#420) ## rust-lang/reference 4 commits in d43038932adeb16ada80e206d4c073d851298101..ee7c676fd6e287459cb407337652412c990686c0 2023-09-09 20:08:06 UTC to 2023-08-16 16:59:33 UTC - Specify bit validity and padding of some types (rust-lang/reference#1392) - implementations.md typo fix (rust-lang/reference#1399) - Update section on default layout for `repr(Rust)` (rust-lang/reference#1396) - conditional-compilation.md: Mention the "none" target_os value (rust-lang/reference#1395) ## rust-lang/rust-by-example 4 commits in 07e0df2f006e59d171c6bf3cafa9d61dbeb520d8..c954202c1e1720cba5628f99543cc01188c7d6fc 2023-08-22 18:49:29 UTC to 2023-08-22 18:46:56 UTC - Improve transparency of 5_i32 versus 5i32 (rust-lang/rust-by-example#1707) - Removed redundant comma (rust-lang/rust-by-example#1735) - Fixed link to Functions (rust-lang/rust-by-example#1734) - Pedantic `'static` lifetime corrections (rust-lang/rust-by-example#1732) ## rust-lang/rustc-dev-guide 25 commits in b123ab4754127d822ffb38349ce0fbf561f1b2fd..08bb147d51e815b96e8db7ba4cf870f201c11ff8 2023-09-11 10:36:36 UTC to 2023-08-18 21:13:31 UTC - make link more pleasant to eye too (rust-lang/rustc-dev-guide#1778) - The current playground link used in the page of MIR shows a optimized… (rust-lang/rustc-dev-guide#1789) - Add section about building an optimized version of `rustc` (rust-lang/rustc-dev-guide#1787) - Set max line length in `.editorconfig` to 100 (rust-lang/rustc-dev-guide#1788) - Update minor how-to-build-and-run.md spelling mistake (rust-lang/rustc-dev-guide#1785) - add sections in 'using git' (rust-lang#1675) (rust-lang/rustc-dev-guide#1784) - link std-dev-guide from landing page (rust-lang#1699) (rust-lang/rustc-dev-guide#1783) - Reword sentence about using `./x` over `./x.py` (rust-lang/rustc-dev-guide#1782) - remove (excessive) indentation (rust-lang/rustc-dev-guide#1781) - coverage tests have moved, twice (rust-lang/rustc-dev-guide#1780) - remove extraneous word (rust-lang/rustc-dev-guide#1779) - llvm updates (rust-lang/rustc-dev-guide#1761) - make link more pleasant to eye (rust-lang/rustc-dev-guide#1777) - date-check: test suites/classes using "revisions" (rust-lang/rustc-dev-guide#1738) - share link target (rust-lang/rustc-dev-guide#1740) - indicate full hierarchy of config option (rust-lang/rustc-dev-guide#1776) - remove stray word (rust-lang/rustc-dev-guide#1773) - it is lower-case (rust-lang/rustc-dev-guide#1772) - Suggest enabling patch-binaries-for-nix in `shell.nix` (rust-lang/rustc-dev-guide#1774) - Add additional licensing concerns to docs (rust-lang/rustc-dev-guide#1775) - Fix broken MD link format (rust-lang/rustc-dev-guide#1771) - update internal terminology: Substs -> GenericArgs (rust-lang/rustc-dev-guide#1769) - Update suggested.md : missing word (rust-lang/rustc-dev-guide#1770) - Update outdated doc for types (rust-lang/rustc-dev-guide#1768) - Add dropck documentation (rust-lang/rustc-dev-guide#1767)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
C-enhancement
Category: An issue proposing an enhancement or a PR with one.
E-easy
Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.
On the pull request for
str::from_bytes
(#1670), @kevina had a good suggestion for what I think would make a good additional function: "a version of from_bytes which doesn't fail on invalid input but rather offers some sort of error recovery options. Like maybe it can return the partly converted string with an index to the invalid position. Or perhaps, a callback function to handle the error, etc."At a glance the easy way to do this would be with a callback to, e.g., drop, replace, or coerce offending sequences into UTF-8 or else return a
result::err
...But is this a recipe for complex callbacks? Perhaps providing sensible callback functions like
str::encode::drop_invalid_bytes
,str::encode::replace_invalid_bytes_with_...
,str::encode::error_with_detail
, and so on would make this simple enough to use.Maybe those should just be simple functions for whole byte vector conversion, anyways.
What do you think?
The text was updated successfully, but these errors were encountered: