[swift-evolution] [RFC] UnsafeBytePointer API for In-Memory Layout
Joe Groff
jgroff at apple.com
Mon May 9 15:20:13 CDT 2016
Regarding the UnsafeBytePointer API:
> struct UnsafeBytePointer : Hashable, _Pointer {
>
> let _rawValue: Builtin.RawPointer
>
> var hashValue: Int {...}
>
> init<T>(_ : UnsafePointer<T>)
> init<T>(_ : UnsafeMutablePointer<T>)
> init?<T>(_ : UnsafePointer<T>?)
> init?<T>(_ : UnsafeMutablePointer<T>?)
>
> init<T>(_ : OpaquePointer<T>)
> init?<T>(_ : OpaquePointer<T>?)
>
> init?(bitPattern: Int)
> init?(bitPattern: UInt)
>
> func load<T>(_ : T.Type) -> T
>
> @warn_unused_result
> init(allocatingBytes size: Int, alignedTo: Int)
>
> @warn_unused_result
> init<T>(allocatingCapacity count: Int, of: T.Type)
>
> func deallocateBytes(_ size: Int, alignedTo: Int)
>
> func deallocateCapacity<T>(_ num: Int, of: T.Type)
>
> // Returns a pointer one byte after the initialized memory.
> func initialize<T>(with newValue: T, count: Int = 1) -> UnsafeBytePointer
>
> // Returns a pointer one byte after the initialized memory.
> func initialize<T>(from: UnsafePointer<T>, count: Int) -> UnsafeBytePointer
>
> func initializeBackward<T>(from source: UnsafePointer<T>, count: Int)
>
> func deinitialize<T>(_ : T.Type, count: Int = 1)
> }
Should we also have 'assign' methods, matching 'initialize'? Should 'deinitialize' be called 'destroy', matching 'UnsafeMutablePointer's API?
-Joe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160509/217db9ca/attachment.html>
More information about the swift-evolution
mailing list