mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-19 18:01:31 +00:00
changetype builtin; some namespace parsing; more stdlib ideas; compiler options for asc
This commit is contained in:
@ -1,29 +1,25 @@
|
||||
/// <reference path="../../assembly.d.ts" />
|
||||
|
||||
/** A C-compatible Array class. */
|
||||
@global()
|
||||
@struct()
|
||||
class CArray<T> {
|
||||
|
||||
/** Constructs a new C-Array of the specified capacity. */
|
||||
constructor(capacity: usize) {
|
||||
return unsafe_cast<usize,this>(Memory.allocate(capacity * sizeof<T>()));
|
||||
return changetype<usize, this>(Heap.allocate(capacity * sizeof<T>()));
|
||||
}
|
||||
|
||||
/** Gets the element at the specified index using bracket notation. */
|
||||
@inline()
|
||||
"[]"(index: usize): T {
|
||||
return load<T>(unsafe_cast<this,usize>(this) + index * sizeof<T>());
|
||||
return load<T>(changetype<this, usize>(this) + index * sizeof<T>());
|
||||
}
|
||||
|
||||
/** Sets the element at the specified index using bracket notation. */
|
||||
@inline()
|
||||
"[]="(index: usize, value: T): T {
|
||||
store<T>(unsafe_cast<this,usize>(this) + index * sizeof<T>(), value);
|
||||
store<T>(changetype<this, usize>(this) + index * sizeof<T>(), value);
|
||||
return value;
|
||||
}
|
||||
|
||||
/** Disposes this instance and the memory associated with it. */
|
||||
dispose(): void {
|
||||
Memory.dispose(unsafe_cast<this,usize>(this));
|
||||
Heap.dispose(changetype<this, usize>(this));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user