import { TypedArray } from "./internal/typedarray"; import { storeUnsafeWithOffset } from "./internal/arraybuffer"; export class Int8Array extends TypedArray { static readonly BYTES_PER_ELEMENT: usize = sizeof(); subarray(begin: i32 = 0, end: i32 = this.length): Int8Array { return changetype(super.subarray(begin, end)); } } export class Uint8Array extends TypedArray { static readonly BYTES_PER_ELEMENT: usize = sizeof(); subarray(begin: i32 = 0, end: i32 = this.length): Uint8Array { return changetype(super.subarray(begin, end)); } } export class Uint8ClampedArray extends TypedArray { static readonly BYTES_PER_ELEMENT: usize = sizeof(); @operator("[]=") protected __set(index: i32, value: i32): void { var byteOffset = this.byteOffset; var elementLength = (this.byteLength - byteOffset) >>> alignof(); if (index >= elementLength) throw new Error("Index out of bounds"); var clampedValue = max(0, min(0xFF, value)); storeUnsafeWithOffset(this.buffer, index, clampedValue, byteOffset); } subarray(begin: i32 = 0, end: i32 = this.length): Uint8ClampedArray { return changetype(super.subarray(begin, end)); } } export class Int16Array extends TypedArray { static readonly BYTES_PER_ELEMENT: usize = sizeof(); subarray(begin: i32 = 0, end: i32 = this.length): Int16Array { return changetype(super.subarray(begin, end)); } } export class Uint16Array extends TypedArray { static readonly BYTES_PER_ELEMENT: usize = sizeof(); subarray(begin: i32 = 0, end: i32 = this.length): Uint16Array { return changetype(super.subarray(begin, end)); } } export class Int32Array extends TypedArray { static readonly BYTES_PER_ELEMENT: usize = sizeof(); subarray(begin: i32 = 0, end: i32 = this.length): Int32Array { return changetype(super.subarray(begin, end)); } } export class Uint32Array extends TypedArray { static readonly BYTES_PER_ELEMENT: usize = sizeof(); subarray(begin: i32 = 0, end: i32 = this.length): Uint32Array { return changetype(super.subarray(begin, end)); } } export class Int64Array extends TypedArray { static readonly BYTES_PER_ELEMENT: usize = sizeof(); subarray(begin: i32 = 0, end: i32 = this.length): Int64Array { return changetype(super.subarray(begin, end)); } } export class Uint64Array extends TypedArray { static readonly BYTES_PER_ELEMENT: usize = sizeof(); subarray(begin: i32 = 0, end: i32 = this.length): Uint64Array { return changetype(super.subarray(begin, end)); } } export class Float32Array extends TypedArray { static readonly BYTES_PER_ELEMENT: usize = sizeof(); subarray(begin: i32 = 0, end: i32 = this.length): Float32Array { return changetype(super.subarray(begin, end)); } } export class Float64Array extends TypedArray { static readonly BYTES_PER_ELEMENT: usize = sizeof(); subarray(begin: i32 = 0, end: i32 = this.length): Float64Array { return changetype(super.subarray(begin, end)); } }