mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-25 23:12:19 +00:00
26 lines
535 B
TypeScript
26 lines
535 B
TypeScript
/// <reference path="../../assembly.d.ts" />
|
|
|
|
@global()
|
|
@struct()
|
|
class CArray<T> {
|
|
|
|
constructor(capacity: usize) {
|
|
return changetype<usize, this>(Heap.allocate(capacity * sizeof<T>()));
|
|
}
|
|
|
|
@inline()
|
|
"[]"(index: usize): T {
|
|
return load<T>(changetype<this, usize>(this) + index * sizeof<T>());
|
|
}
|
|
|
|
@inline()
|
|
"[]="(index: usize, value: T): T {
|
|
store<T>(changetype<this, usize>(this) + index * sizeof<T>(), value);
|
|
return value;
|
|
}
|
|
|
|
dispose(): void {
|
|
Heap.dispose(changetype<this, usize>(this));
|
|
}
|
|
}
|