 
 /// Provides bridging functionality for struct Data to class NSData and vice-versa.
 
-#if DEPLOYMENT_RUNTIME_SWIFT
-internal typealias DataBridgeType = _ObjectTypeBridgeable
-#else
-internal typealias DataBridgeType = _ObjectiveCBridgeable
-#endif
-
-extension Data : DataBridgeType {
+extension Data : _ObjectiveCBridgeable {
     @_semantics("convertToObjectiveC")
     public func _bridgeToObjectiveC() -> NSData {
         return _backing.bridgedReference(_sliceRange)

        _append(buffer)
    }

    public mutating func append<S : Sequence>(contentsOf newElements: S) where S.Iterator.Element == Iterator.Element {
        for byte in newElements {
            append(byte)
        }
    }
    
    public mutating func append(contentsOf bytes: [UInt8]) {
        bytes.withUnsafeBufferPointer { (buffer: UnsafeBufferPointer<UInt8>) -> Void in
            _append(buffer)
        }
    }
    

    }
    
    // slightly faster paths for common sequences
    @inlinable
    public init<S: Sequence>(_ elements: S) where S.Iterator.Element == UInt8 {
        let backing = _DataStorage(capacity: Swift.max(elements.underestimatedCount, 1))
        var (iter, endIndex) = elements._copyContents(initializing: UnsafeMutableBufferPointer(start: backing._bytes?.bindMemory(to: UInt8.self, capacity: backing._capacity), count: backing._capacity))
        backing._length = endIndex
        while var element = iter.next() {
            backing.append(&element, length: 1)
        }
        self.init(backing: backing, range: 0..<backing._length)
    }
    
    @inlinable
    public init<S: Sequence>(bytes elements: S) where S.Iterator.Element == UInt8 {
        self.init(elements)
    }

    @usableFromInline
