package rados // #include import "C" import ( "unsafe" ) type readStep struct { withoutUpdate withoutFree // the c pointer utilizes the Go byteslice data and no free is needed // inputs: b []byte // arguments: cBuffer *C.char cReadLen C.size_t cOffset C.uint64_t } func newReadStep(b []byte, offset uint64) *readStep { return &readStep{ b: b, cBuffer: (*C.char)(unsafe.Pointer(&b[0])), // TODO: must be pinned cReadLen: C.size_t(len(b)), cOffset: C.uint64_t(offset), } }