Skip to content

Commit eb74e71

Browse files
authored
Merge pull request #30106 from Catfish-Man/going-public
Make String(unsafeUninitializedCapacity:initializingUTF8With:) public
2 parents 2e70d45 + b9ddaa6 commit eb74e71

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

stdlib/public/core/String.swift

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -445,22 +445,22 @@ extension String {
445445
/// sequences and the second with an ill-formed sequence at the end.
446446
///
447447
/// let validUTF8: [UInt8] = [67, 97, 102, -61, -87, 0]
448-
/// let s = String(uninitializedCapacity: validUTF8.count,
448+
/// let s = String(unsafeUninitializedCapacity: validUTF8.count,
449449
/// initializingUTF8With: { ptr in
450450
/// ptr.initializeFrom(validUTF8)
451451
/// return validUTF8.count
452452
/// })
453453
/// // Prints "Café"
454454
///
455455
/// let invalidUTF8: [UInt8] = [67, 97, 102, -61, 0]
456-
/// let s = String(uninitializedCapacity: invalidUTF8.count,
456+
/// let s = String(unsafeUninitializedCapacity: invalidUTF8.count,
457457
/// initializingUTF8With: { ptr in
458458
/// ptr.initializeFrom(invalidUTF8)
459459
/// return invalidUTF8.count
460460
/// })
461461
/// // Prints "Caf�"
462462
///
463-
/// let s = String(uninitializedCapacity: invalidUTF8.count,
463+
/// let s = String(unsafeUninitializedCapacity: invalidUTF8.count,
464464
/// initializingUTF8With: { ptr in
465465
/// ptr.initializeFrom(invalidUTF8)
466466
/// return 0
@@ -475,6 +475,20 @@ extension String {
475475
/// - Parameters:
476476
/// - buffer: A buffer covering uninitialized memory with room for the
477477
/// specified number of UTF-8 code units.
478+
@inline(__always)
479+
@available(macOS 9999, iOS 9999, tvOS 9999, watchOS 9999, *)
480+
public init(
481+
unsafeUninitializedCapacity capacity: Int,
482+
initializingUTF8With initializer: (
483+
_ buffer: UnsafeMutableBufferPointer<UInt8>
484+
) throws -> Int
485+
) rethrows {
486+
self = try String(
487+
uninitializedCapacity: capacity,
488+
initializingUTF8With: initializer
489+
)
490+
}
491+
478492
@inline(__always)
479493
internal init(
480494
uninitializedCapacity capacity: Int,

0 commit comments

Comments
 (0)