> On Apr 19, 2017, at 1:25 PM, John McCall <[email protected]> wrote: > > Proposal Link: > https://github.com/apple/swift-evolution/blob/master/proposals/0163-string-revision-1.md > > <https://github.com/apple/swift-evolution/blob/master/proposals/0163-string-revision-1.md> > > Hello Swift Community, > > The review of SE-0163 "Improve Interaction Between `private` Declarations and > Extensions” ran from April 5th through 11th, 2017. The proposal is accepted > with revisions.
And now everyone knows that I copy-and-paste these from Doug. This should read "The review of SE-0163 "String Revision: Collection Conformance, C Interop, Transcoding"", of course. John. > > Feedback from the community was positive. There was a question during the > discussion about how best to construct a String from an array of characters > that may or may not be NUL-terminated. Upon reflection, the proposal authors > decided that it would best if String provided an initializer that took a > collection of code units; feedback on that idea was also positive. The > proposal authors also decided that it would be best if strings could be > easily converted to a C string with an arbitrary encoding; this was not > discussed during the review, but the core team felt that this was obvious > enough and sufficiently similar to other API that it did not demand an > additional formal review period. Accordingly, this proposal has been > accepted with the following two revisions: > > 1. String will also add the following initializer: > > /// Constructs a `String` having the same contents as `codeUnits`. > /// > /// - Parameter codeUnits: a collection of code units in > /// the given `encoding`. > /// - Parameter encoding: describes the encoding in which the code units > /// should be interpreted. > init<C: Collection, Encoding: UnicodeEncoding>(codeUnits: C, encoding: > Encoding) > > 2. String will also add the following method, analogous to the withCString > method that has already been proposed: > > /// Invokes the given closure on the contents of the string, represented as > a > /// pointer to a null-terminated sequence of code units in the given > encoding. > func withCString<Result, Encoding: UnicodeEncoding>(encoding: Encoding, > _ body: (UnsafePointer<Encoding.CodeUnit>) throws -> Result) rethrows -> > Result > > John McCall > Review Manager > _______________________________________________ > swift-evolution-announce mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution-announce
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
