[stdlib] encode/transcode => [encode/transcode]IfRepresentable...

...to make room for a more useful encode/transcode that inject replacement
characters when encoding fails.
This commit is contained in:
Dave Abrahams
2017-05-07 18:03:55 -07:00
parent 38991ca83f
commit f4610e1638
6 changed files with 28 additions and 21 deletions

View File

@@ -26,11 +26,11 @@ public protocol _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?
static func encodeIfRepresentable(_ content: UnicodeScalar) -> EncodedScalar?
/// 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>(
static func transcodeIfRepresentable<FromEncoding : UnicodeEncoding>(
_ content: FromEncoding.EncodedScalar, from _: FromEncoding.Type
) -> EncodedScalar?
@@ -55,7 +55,7 @@ public protocol UnicodeEncoding : _UnicodeEncoding
where ForwardParser.Encoding == Self, ReverseParser.Encoding == Self {}
extension _UnicodeEncoding {
public static func transcode<FromEncoding : UnicodeEncoding>(
public static func transcodeIfRepresentable<FromEncoding : UnicodeEncoding>(
_ content: FromEncoding.EncodedScalar, from _: FromEncoding.Type
) -> EncodedScalar? {
return encode(FromEncoding.decode(content))