unsafeheader.go (913B)
1 // Copyright 2020 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Package unsafeheader contains header declarations for the Go runtime's 6 // slice and string implementations. 7 // 8 // This package allows x/sys to use types equivalent to 9 // reflect.SliceHeader and reflect.StringHeader without introducing 10 // a dependency on the (relatively heavy) "reflect" package. 11 package unsafeheader 12 13 import ( 14 "unsafe" 15 ) 16 17 // Slice is the runtime representation of a slice. 18 // It cannot be used safely or portably and its representation may change in a later release. 19 type Slice struct { 20 Data unsafe.Pointer 21 Len int 22 Cap int 23 } 24 25 // String is the runtime representation of a string. 26 // It cannot be used safely or portably and its representation may change in a later release. 27 type String struct { 28 Data unsafe.Pointer 29 Len int 30 }