Reviewed-on: #8 Co-authored-by: Matheus Sampaio Queiroga <srherobrine20@gmail.com> Co-committed-by: Matheus Sampaio Queiroga <srherobrine20@gmail.com>
37 lines
1.0 KiB
Go
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()))
|
|
}
|