Feature gate: #![feature(casefold)]
This is a tracking issue for Unicode-aware case folding APIs in the standard library. These APIs do not perform NFC/NFKC normalization.
Public API
// `core` impl char { pub fn to_casefold_unnormalized(self) -> ToCasefold; } mod char { #[derive(Debug, Clone)] pub struct ToCasefold { … }; impl Iterator for ToCasefold { type Item = char; … } impl DoubleEndedIterator for ToCasefold { … } impl FusedIterator for ToCasefold {} impl ExactSizeIterator for ToCasefold {} impl fmt::Display for ToCasefold { … } } impl str { pub fn eq_ignore_case_unnormalized(&self, other: &str) -> bool; }
// `alloc` impl str { pub fn to_casefold_unnormalized(&self) -> String; }
Steps / History
(Remember to update the S-tracking-* label when checking boxes.)
- Implementation: Add APIs for case folding to the standard library #154742
- Final comment period (FCP)1
- Stabilization PR
Unresolved Questions
- Is the lack of normalization a deal-breaker? What is the best way to deal with that? Add APIs for case folding to the standard library #154742 (comment)
@rustbot label A-Unicode