Closed
Description
This is a separate issue to track the potential deprecation of the std::ascii
, alloc::ascii
, and core::ascii
modules, separated from #77174 per this comment. This issue will just say std::ascii
for simplicity since, excluding the already-deprecated AsciiExt
trait, these three modules are identical.
Public API
Right now, std::ascii
contains the following APIs:
trait AsciiExt
(already deprecated)fn escape_default(b: u8) -> std::ascii::EscapeDefault
(now duplicated by inherentu8::escape_ascii
)struct EscapeDefault
(impl Iterator
return value forescape_default
, not re-exported anywhere)
The deprecation would involve:
- Deprecating
fn escape_default
(already moved tou8::escape_ascii
) - Re-exporting
struct EscapeDefault
somewhere else, presumably instd::num
- Deprecating
struct EscapeDefault
after its re-export is made stable - Deprecating the entire
std::ascii
module
Steps / History
Some of these may involve separate FCPs:
- Deprecation of
std::ascii::AsciiExt
: Deprecate the AsciiExt trait in favor of inherent methods #49109 - Implementation of
u8::escape_ascii
: Tracking Issue for inherent_ascii_escape #77174 - Deprecation of
std::ascii::escape_default
(not yet) - Rename of
std::ascii::EscapeDefault
(not yet) - Deprecation of
std::ascii::EscapeDefault
(not yet) - Deprecation of full
std::ascii
module (not yet)
Unresolved Questions
- Where should
std::ascii::EscapeDefault
be moved to?std::num::EscapeAscii
seems the most logical, but there could be other options. - What effects would this have on the larger ecosystem? (crater runs?)