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  }