keen/col/buffer

Source
This is a standard module and does not need to be explicitly imported.
buffer[t] builtin
buffer-view[t] record (has private fields)
list-new[t] t buffer(a t[])
new[t] t buffer-view()
cast-immutable[t] t array-view(a t buffer-view) unsafe
to[t] t[](a t buffer-view)
to[t] t buffer(a t buffer-view)
is-empty[t] bool(a t buffer-view)
size[t] nat64(a t buffer-view)
subscript[t] t(a t buffer-view, index nat64)
subscript[t] t(a t buffer-view, index index-relative-to-end)
set-subscript[t] void(a t buffer-view, index nat64, value t)
set-subscript[t] void(a t buffer-view, index index-relative-to-end, value t)
subscript[t] t buffer-view(a t buffer, indices nat64 range)
subscript[t] t buffer-view(a t buffer, indices range-relative-to-end)
subscript[t] t buffer-view(a t buffer-view, indices nat64 range)
subscript[t] t buffer-view(a t buffer-view, indices range-relative-to-end)
some[t] bool(a t buffer-view, f bool mut(t))
to[t] t buffer(a t[])
Copies the array elements to a new buffer. This is O(a size).
to[t] t buffer(a t array-view)
to[t] t[](a t buffer)

Copies the elements to an immutable array. This is O(a size).

There is no move-to function for buffer, since its pointer and size are immutable and so it can't be made empty.

size[t] nat64(a t buffer)
Number of elements.
is-empty[t] bool(a t buffer)
true if a.size == 0.
copy[t] t buffer(a t buffer)
Copies the elements to a new buffer. This is O(a size).
subscript[t] t(a t buffer, index nat64)
set-subscript[t] void(a t buffer, index nat64, value t)
set-subscript[t] void(dest t buffer, range nat64 range, source t[])
set-subscript[t] void(dest t buffer, range nat64 range, source t array-view)
set-subscript[t] void(dest t buffer, range nat64 range, source t buffer)
set-subscript[t] void(dest t buffer, range nat64 range, source t buffer-view)
set-subscript[t] void(dest t buffer, range range-relative-to-end, source t[])
set-subscript[t] void(dest t buffer, range range-relative-to-end, source t array-view)
set-subscript[t] void(dest t buffer, range range-relative-to-end, source t buffer)
set-subscript[t] void(dest t buffer, range range-relative-to-end, source t buffer-view)
set-subscript[t] void(dest t buffer-view, range nat64 range, source t[])
set-subscript[t] void(dest t buffer-view, range nat64 range, source t array-view)
set-subscript[t] void(dest t buffer-view, range nat64 range, source t buffer)
set-subscript[t] void(dest t buffer-view, range nat64 range, source t buffer-view)
set-subscript[t] void(dest t buffer-view, range range-relative-to-end, source t[])
set-subscript[t] void(dest t buffer-view, range range-relative-to-end, source t array-view)
set-subscript[t] void(dest t buffer-view, range range-relative-to-end, source t buffer)
set-subscript[t] void(dest t buffer-view, range range-relative-to-end, source t buffer-view)
copy-from[t] void(dest t buffer-view, source t buffer-view)
Overwrites dest with the contents of source. dest and source must be the same size.
copy-from[t] void(dest t buffer-view, source t array-view)
swap[t] void(a t buffer, i nat64, j nat64)
Swaps the values at a[i] and a[j].
map=[t] void(a t buffer, f t mut(t))
Overwrites each element x with f[x].
uninitialized-buffer[t] t buffer(size nat64) unsafe
Allocates a buffer full of gc-safe-value. To use this safely, you need to be careful to never read an element before writing it. For a safer alternative, consider using a for loop to create the buffer.
clear-memory[t] void(a t buffer-view) unsafe
Sets every element to gc-safe-value.
cast-immutable[t] t[](a t buffer) unsafe
Unsafe cast to an immutable array. This is O(1). WARN: It's undefined behavior if a is ever written to again.
cast-mutable[t] t buffer(a t[]) unsafe
Unsafe cast to a mutable array. Use this only if you are sure it will not actually be written to.
some[t] bool(a t buffer, f bool mut(t))
Calls f on each element in a. a remains mutable during iteration.