mirror of
https://github.com/chai2010/advanced-go-programming-book.git
synced 2025-05-24 20:52:22 +00:00
24 lines
414 B
Go
24 lines
414 B
Go
package main
|
|
|
|
import "unsafe"
|
|
|
|
type MyBuffer struct {
|
|
cptr *cgo_MyBuffer_T
|
|
}
|
|
|
|
func NewMyBuffer(size int) *MyBuffer {
|
|
return &MyBuffer{
|
|
cptr: cgo_NewMyBuffer(size),
|
|
}
|
|
}
|
|
|
|
func (p *MyBuffer) Delete() {
|
|
cgo_DeleteMyBuffer(p.cptr)
|
|
}
|
|
|
|
func (p *MyBuffer) Data() []byte {
|
|
data := cgo_MyBuffer_Data(p.cptr)
|
|
size := cgo_MyBuffer_Size(p.cptr)
|
|
return ((*[1 << 31]byte)(unsafe.Pointer(data)))[0:int(size):int(size)]
|
|
}
|