Files
napi-go/buffer.go
Matheus Sampaio Queiroga 32f3ff500d Update pkg to same Node addon Header (#8)
Reviewed-on: #8
Co-authored-by: Matheus Sampaio Queiroga <srherobrine20@gmail.com>
Co-committed-by: Matheus Sampaio Queiroga <srherobrine20@gmail.com>
2025-04-27 06:59:21 +00:00

37 lines
1.0 KiB
Go

package napi
import "sirherobrine23.com.br/Sirherobrine23/napi-go/internal/napi"
type Buffer struct{ value }
// Convert [ValueType] to [*Buffer].
func ToBuffer(o ValueType) *Buffer { return &Buffer{o} }
// Create new Buffer with length
func CreateBuffer(env EnvType, length int) (*Buffer, error) {
napiValue, err := mustValueErr(napi.CreateBuffer(env.NapiValue(), length))
if err != nil {
return nil, err
}
return ToBuffer(N_APIValue(env, napiValue)), nil
}
// Copy []byte to Node::Buffer struct
func CopyBuffer(env EnvType, buff []byte) (*Buffer, error) {
napiValue, err := mustValueErr(napi.CreateBufferCopy(env.NapiValue(), buff))
if err != nil {
return nil, err
}
return ToBuffer(N_APIValue(env, napiValue)), nil
}
// Get size of buffer
func (buff *Buffer) Length() (int, error) {
return mustValueErr(napi.GetBufferInfoSize(buff.NapiEnv(), buff.NapiValue()))
}
// return []byte from Buffer value
func (buff *Buffer) Data() ([]byte, error) {
return mustValueErr(napi.GetBufferInfoData(buff.NapiEnv(), buff.NapiValue()))
}