[stdlib] Add ASCII UnicodeEncoding, drop uses of legacy codecs

Preparation for new C-string interop.
This commit is contained in:
Dave Abrahams
2017-05-07 19:39:26 -07:00
parent ca576bb9bc
commit c5d6880053
11 changed files with 225 additions and 101 deletions

View File

@@ -63,13 +63,13 @@ extension _UnicodeEncoding {
/// Converts from encoding-independent to encoded representation, returning
/// `nil` if the scalar can't be represented in this encoding.
static func encode(_ content: UnicodeScalar) -> EncodedScalar {
public static func encode(_ content: UnicodeScalar) -> EncodedScalar {
return encodeIfRepresentable(content) ?? encodedReplacementCharacter
}
/// Converts a scalar from another encoding's representation, returning
/// `nil` if the scalar can't be represented in this encoding.
static func transcode<FromEncoding : UnicodeEncoding>(
public static func transcode<FromEncoding : UnicodeEncoding>(
_ content: FromEncoding.EncodedScalar, from _: FromEncoding.Type
) -> EncodedScalar {
return encode(FromEncoding.decode(content))