File tree Expand file tree Collapse file tree 2 files changed +18
-7
lines changed Expand file tree Collapse file tree 2 files changed +18
-7
lines changed Original file line number Diff line number Diff line change @@ -102,16 +102,16 @@ extension MutableRawSpan {
102102 }
103103
104104 @_alwaysEmitIntoClient
105- @lifetime ( copy elements)
105+ @lifetime ( borrow elements)
106106 public init < Element: BitwiseCopyable > (
107- _elements elements: consuming MutableSpan < Element >
107+ _elements elements: inout MutableSpan < Element >
108108 ) {
109- let bytes = unsafe UnsafeMutableRawBufferPointer(
110- start: elements. _pointer,
111- count: elements. count &* MemoryLayout< Element> . stride
109+ let ( start, count) = unsafe ( elements. _pointer, elements. _count)
110+ let span = unsafe MutableRawSpan(
111+ _unchecked: start,
112+ byteCount: count &* MemoryLayout< Element> . stride
112113 )
113- let span = unsafe MutableRawSpan( _unsafeBytes: bytes)
114- self = unsafe _override Lifetime ( span, copying: elements)
114+ self = unsafe _override Lifetime ( span, mutating: & elements)
115115 }
116116}
117117
Original file line number Diff line number Diff line change @@ -241,6 +241,17 @@ extension MutableSpan where Element: BitwiseCopyable {
241241 RawSpan ( _mutableSpan: self )
242242 }
243243 }
244+
245+ /// Construct a MutableRawSpan over the memory represented by this span
246+ ///
247+ /// - Returns: a MutableRawSpan over the memory represented by this span
248+ @_alwaysEmitIntoClient
249+ public var mutableBytes : MutableRawSpan {
250+ @lifetime ( borrow self)
251+ mutating get {
252+ MutableRawSpan ( _elements: & self )
253+ }
254+ }
244255}
245256
246257@available ( SwiftStdlib 6 . 2 , * )
You can’t perform that action at this time.
0 commit comments