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 {
102
102
}
103
103
104
104
@_alwaysEmitIntoClient
105
- @lifetime ( copy elements)
105
+ @lifetime ( borrow elements)
106
106
public init < Element: BitwiseCopyable > (
107
- _elements elements: consuming MutableSpan < Element >
107
+ _elements elements: inout MutableSpan < Element >
108
108
) {
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
112
113
)
113
- let span = unsafe MutableRawSpan( _unsafeBytes: bytes)
114
- self = unsafe _override Lifetime ( span, copying: elements)
114
+ self = unsafe _override Lifetime ( span, mutating: & elements)
115
115
}
116
116
}
117
117
Original file line number Diff line number Diff line change @@ -241,6 +241,17 @@ extension MutableSpan where Element: BitwiseCopyable {
241
241
RawSpan ( _mutableSpan: self )
242
242
}
243
243
}
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
+ }
244
255
}
245
256
246
257
@available ( SwiftStdlib 6 . 2 , * )
You can’t perform that action at this time.
0 commit comments