File tree Expand file tree Collapse file tree 2 files changed +19
-4
lines changed Expand file tree Collapse file tree 2 files changed +19
-4
lines changed Original file line number Diff line number Diff line change @@ -309,14 +309,16 @@ extension RawSpan {
309
309
/// - span: An existing `Span<T>`, which will define both this
310
310
/// `RawSpan`'s lifetime and the memory it represents.
311
311
@_alwaysEmitIntoClient
312
- @lifetime ( borrow span)
312
+ @lifetime ( span)
313
313
public init < Element: BitwiseCopyable > (
314
- _elements span: borrowing Span < Element >
314
+ _elements span: Span < Element >
315
315
) {
316
- unsafe self. init (
317
- _unchecked: span. _pointer,
316
+ let pointer = span. _pointer
317
+ let rawSpan = unsafe RawSpan(
318
+ _unchecked: pointer,
318
319
byteCount: span. count &* MemoryLayout< Element> . stride
319
320
)
321
+ self = unsafe _override Lifetime ( rawSpan, copying: span)
320
322
}
321
323
}
322
324
Original file line number Diff line number Diff line change @@ -493,6 +493,19 @@ extension Span where Element: BitwiseCopyable {
493
493
}
494
494
}
495
495
496
+ @available ( SwiftStdlib 6 . 2 , * )
497
+ extension Span where Element: BitwiseCopyable {
498
+
499
+ public var bytes : RawSpan {
500
+ @lifetime ( self )
501
+ @_alwaysEmitIntoClient
502
+ get {
503
+ let rawSpan = RawSpan ( _elements: self )
504
+ return _overrideLifetime ( rawSpan, copying: self )
505
+ }
506
+ }
507
+ }
508
+
496
509
// MARK: sub-spans
497
510
@available ( SwiftStdlib 6 . 2 , * )
498
511
extension Span where Element: ~ Copyable {
You can’t perform that action at this time.
0 commit comments