MCPcopy Create free account
hub / github.com/buke/quickjs-go / ToInt8Array

Method ToInt8Array

value.go:853–873  ·  view source on GitHub ↗

ToInt8Array converts the value to int8 slice if it's an Int8Array.

()

Source from the content-addressed store, hash-verified

851
852// ToInt8Array converts the value to int8 slice if it's an Int8Array.
853func (v *Value) ToInt8Array() ([]int8, error) {
854 if !v.IsInt8Array() {
855 return nil, errors.New("value is not an Int8Array")
856 }
857
858 buffer, byteOffset, byteLength, _ := v.getTypedArrayInfo()
859 defer buffer.Free()
860
861 totalSize := uint(byteOffset + byteLength)
862 bytes, err := buffer.ToByteArray(totalSize)
863 if err != nil {
864 return nil, err
865 }
866
867 data := bytes[byteOffset : byteOffset+byteLength]
868 result := make([]int8, len(data))
869 for i, b := range data {
870 result[i] = int8(b)
871 }
872 return result, nil
873}
874
875// ToUint8Array converts the value to uint8 slice if it's a Uint8Array or Uint8ClampedArray.
876func (v *Value) ToUint8Array() ([]uint8, error) {

Callers 3

TestContextTypedArraysFunction · 0.80
unmarshalSliceMethod · 0.80
TestValueTypedArraysFunction · 0.80

Calls 5

IsInt8ArrayMethod · 0.95
getTypedArrayInfoMethod · 0.95
NewMethod · 0.80
ToByteArrayMethod · 0.80
FreeMethod · 0.45

Tested by 2

TestContextTypedArraysFunction · 0.64
TestValueTypedArraysFunction · 0.64