     /* private but usableFromInline */ @usableFromInline var _buffer: ByteBuffer
     /* private but usableFromInline */ @usableFromInline var _range: Range<Index>
 
+    @inlinable
     internal init(buffer: ByteBuffer, range: Range<Index>) {
         precondition(range.lowerBound >= 0 && range.upperBound <= buffer.capacity)
         self._buffer = buffer

        }
    }

    public func _customIndexOfEquatableElement(_ element : Element) -> Index?? {
        return .some(self.withUnsafeBytes { ptr -> Index? in
            return ptr.firstIndex(of: element).map { $0 + self._range.lowerBound }
        })
    }

    public func _customLastIndexOfEquatableElement(_ element: Element) -> Index?? {
        return .some(self.withUnsafeBytes { ptr -> Index? in
            return ptr.lastIndex(of: element).map { $0 + self._range.lowerBound }


extension ByteBuffer {
    /// A view into the readable bytes of the `ByteBuffer`.
    @inlinable
    public var readableBytesView: ByteBufferView {
        return ByteBufferView(self)
    }
