github.com/protolambda/zssz@v0.1.5/util/ptrutil/slice_header.go (about) 1 package ptrutil 2 3 import ( 4 "unsafe" 5 ) 6 7 type SliceHeader struct { 8 Data unsafe.Pointer 9 Len int 10 Cap int 11 } 12 13 func GetSliceHeader(p unsafe.Pointer, length uint64) *SliceHeader { 14 return &SliceHeader{ 15 Data: p, 16 Len: int(length), 17 Cap: int(length), 18 } 19 } 20 21 func ReadSliceHeader(p unsafe.Pointer) *SliceHeader { 22 return (*SliceHeader)(p) 23 }