1 object MutArray<T> = 2 def from (slice : Slice<T>) = 3 let array = Array slice.size 4 for i = 0 until slice.size do 5 array[i] = slice[i] 6 7 array 8 9 def from (ptr : MutPtr<T>) (size : u32) = MutArray size =ptr 10 11 object Array<T> 12 def from (slice : Slice<T>) = MutArray<T>.from slice |> as_readonly 13 14 fun from_slice<T> (slice : Slice<T>) : Array<T> = Array<T>.from slice 15 fun from_slice<T> (slice : Slice<T>) : MutArray<T> = MutArray<T>.from slice 16 17 def array_of<T> (array : Array<T> @vararg) = array 18 def mut_array_of<T> (array : MutArray<T> @vararg) = array 19 20 type [T; N] 21 def to_array = 22 let array = Array size 23 for i = 0 until size do 24 array[i] = self[i] 25 26 array 27 28 def repeat_array<T> (x : T) (n : u32) = 29 let array = Array<T> n 30 for i = 0 until n do 31 array[i] = x 32 33 array 34 35 def repeat_array<T> (x : T) (n : i32) = 36 assert n >= 0 37 repeat_array x n.as<u32> 38