# API Reference Generated by `bux doc` from `///` and `/* */` documentation comments. ## `Array` _Source: `lib/Array.bux`_ ### `Array` _struct_ ```bux struct Array { ``` Growable contiguous buffer of `T` (len + capacity). ### `Array_New` _func_ ```bux func Array_New(cap: uint) -> Array { ``` Create an empty array with the given initial capacity. ### `Array_Push` _func_ ```bux func Array_Push(self: *Array, value: T) { ``` Append `value`, growing capacity if needed. ### `Array_Get` _func_ ```bux func Array_Get(self: *Array, index: uint) -> T { ``` Element at `index` (bounds-checked unless `@[Release]`). ### `Array_Set` _func_ ```bux func Array_Set(self: *Array, index: uint, value: T) { ``` Write `value` at `index` (bounds-checked unless `@[Release]`). ### `Array_Len` _func_ ```bux func Array_Len(self: *Array) -> uint { ``` Number of live elements. ### `Array_Free` _func_ ```bux func Array_Free(self: *Array) { ``` Free the backing buffer and reset length/capacity to zero. ### `Array_Drop` _func_ ```bux func Array_Drop(self: *Array) { ``` Drop trait entry — same as `Array_Free`. ### `Array_IsEmpty` _func_ ```bux func Array_IsEmpty(self: *Array) -> bool { ``` True if the array has no elements. ### `Array_Cap` _func_ ```bux func Array_Cap(self: *Array) -> uint { ``` Current capacity (not length). ### `Array_Clear` _func_ ```bux func Array_Clear(self: *Array) { ``` Drop length to zero; keeps allocated capacity. ### `Array_Reserve` _func_ ```bux func Array_Reserve(self: *Array, minCap: uint) { ``` Ensure capacity is at least `minCap` (does not shrink). ### `Array_First` _func_ ```bux func Array_First(self: *Array) -> T { ``` First element (bounds-checked if empty). ### `Array_Last` _func_ ```bux func Array_Last(self: *Array) -> T { ``` Last element (bounds-checked if empty). ### `Array_Pop` _func_ ```bux func Array_Pop(self: *Array) -> T { ``` Remove and return the last element (bounds-checked if empty). ### `Array_Contains` _func_ ```bux func Array_Contains(self: *Array, value: T) -> bool { ``` Linear search: true if `value` is present (uses `==`). ### `Array_IndexOf` _func_ ```bux func Array_IndexOf(self: *Array, value: T) -> int { ``` Index of first equal element, or `-1` if not found. ### `Array_Extend` _func_ ```bux func Array_Extend(self: *Array, other: *Array) { ``` Append all elements of `other` onto `self`. ## `Channel` _Source: `lib/Channel.bux`_ ### `Channel_SendInt` _func_ ```bux func Channel_SendInt(ch: *Channel, value: int) { ``` Convenience wrappers for common types ## `Iter` _Source: `lib/Iter.bux`_ ### `Array_Iter` _func_ ```bux func Array_Iter(arr: *Array) -> Iter { ``` Create an iterator from an Array ### `Iter_HasNext` _func_ ```bux func Iter_HasNext(it: *Iter) -> bool { ``` Check if there are more elements ### `Iter_Next` _func_ ```bux func Iter_Next(it: *Iter) -> T { ``` Get the next element and advance (undefined if HasNext is false) ### `Iter_Peek` _func_ ```bux func Iter_Peek(it: *Iter) -> T { ``` Peek current element without advancing (undefined if HasNext is false) ### `Iter_Reset` _func_ ```bux func Iter_Reset(it: *Iter) { ``` Reset iterator to the beginning ### `Iter_Pos` _func_ ```bux func Iter_Pos(it: *Iter) -> uint { ``` Current position ### `Iter_Len` _func_ ```bux func Iter_Len(it: *Iter) -> uint { ``` Remaining length ### `Iter_Count` _func_ ```bux func Iter_Count(it: *Iter) -> uint { ``` Count remaining elements ### `Iter_Skip` _func_ ```bux func Iter_Skip(it: *Iter, n: uint) { ``` Skip N elements ### `Iter_Take` _func_ ```bux func Iter_Take(it: *Iter, n: uint) -> Iter { ``` Take first N elements (by limiting len) ### `Iter_AnyEq` _func_ ```bux func Iter_AnyEq(it: *Iter, value: T) -> bool { ``` True if any remaining element equals value ### `Iter_AllEq` _func_ ```bux func Iter_AllEq(it: *Iter, value: T) -> bool { ``` True if every remaining element equals value (true if empty) ### `Iter_Collect` _func_ ```bux func Iter_Collect(it: *Iter) -> Array { ``` Collect remaining elements into a new Array ### `Iter_Map` _func_ ```bux func Iter_Map(it: *Iter, f: func(T) -> U) -> Array { ``` Map each remaining element through f: T → U, collect into Array ### `Iter_Filter` _func_ ```bux func Iter_Filter(it: *Iter, pred: func(T) -> bool) -> Array { ``` Keep remaining elements for which pred returns true ### `Iter_Fold` _func_ ```bux func Iter_Fold(it: *Iter, init: Acc, f: func(Acc, T) -> Acc) -> Acc { ``` Left-fold: f(f(...f(init, x0), x1), ...) ### `Iter_ForEach` _func_ ```bux func Iter_ForEach(it: *Iter, f: func(T) -> int) { ``` Call f for each remaining element (return value of f is ignored) ### `Iter_Any` _func_ ```bux func Iter_Any(it: *Iter, pred: func(T) -> bool) -> bool { ``` True if any remaining element satisfies pred ### `Iter_All` _func_ ```bux func Iter_All(it: *Iter, pred: func(T) -> bool) -> bool { ``` True if all remaining elements satisfy pred (true if empty) ### `Iter_SumInt` _func_ ```bux func Iter_SumInt(it: *Iter) -> int { ``` Sum remaining ints (specialized fold) ## `Json` _Source: `lib/Json.bux`_ ### `JsonValue` _struct_ ```bux struct JsonValue { ``` === Core type === ### `Json_Null` _func_ ```bux func Json_Null() -> JsonValue { ``` === Constructors === ### `Json_ArrayLen` _func_ ```bux func Json_ArrayLen(v: JsonValue) -> uint { ``` === Array helpers === ### `Json_ObjectLen` _func_ ```bux func Json_ObjectLen(v: JsonValue) -> uint { ``` === Object helpers === ### `Json_IsNull` _func_ ```bux func Json_IsNull(v: JsonValue) -> bool { ``` === Accessors === ### `JsonParser` _struct_ ```bux struct JsonParser { ``` === Parser === ### `Json_Parse` _func_ ```bux func Json_Parse(s: String) -> JsonValue { ``` === Public parser === ### `Json_StringifyImpl` _func_ ```bux func Json_StringifyImpl(sb: *StringBuilder, v: JsonValue) { ``` === Serializer === ## `Map` _Source: `lib/Map.bux`_ ### `Map_Remove` _func_ ```bux func Map_Remove(m: *Map, key: K) -> bool { ``` Remove key if present. Rebuilds the table to keep open-addressing correct. ## `Net` _Source: `lib/Net.bux`_ ### `Net_Create` _func_ ```bux func Net_Create() -> int { ``` Create a TCP socket. Returns -1 on error. ### `Net_SetReuse` _func_ ```bux func Net_SetReuse(fd: int) -> bool { ``` Enable SO_REUSEADDR on a socket. ### `Net_Bind` _func_ ```bux func Net_Bind(fd: int, addr: String, port: int) -> bool { ``` Bind a socket to an address and port. ### `Net_Listen` _func_ ```bux func Net_Listen(fd: int, backlog: int) -> bool { ``` Start listening for connections. ### `Net_Accept` _func_ ```bux func Net_Accept(fd: int) -> int { ``` Accept a connection. Returns new fd or -1 on error. ### `Net_Connect` _func_ ```bux func Net_Connect(fd: int, addr: String, port: int) -> bool { ``` Connect to a remote address and port. ### `Net_Send` _func_ ```bux func Net_Send(fd: int, data: String) -> int { ``` Send data. Returns bytes sent or -1 on error. ### `Net_Recv` _func_ ```bux func Net_Recv(fd: int, maxLen: int) -> String { ``` Receive up to maxLen bytes. Returns empty string on error/EOF. ### `Net_Close` _func_ ```bux func Net_Close(fd: int) -> bool { ``` Close a socket. ### `Net_LastError` _func_ ```bux func Net_LastError() -> String { ``` Get last socket error as a string. ## `Option` _Source: `lib/Option.bux`_ ### `Option_Expect` _func_ ```bux func Option_Expect(o: Option, msg: String) -> int { ``` Unwrap Some or panic with a custom message ### `Option_Or` _func_ ```bux func Option_Or(o: Option, other: Option) -> Option { ``` If o is Some return it, otherwise return other ## `Os` _Source: `lib/Os.bux`_ ### `Os_Exit` _func_ ```bux func Os_Exit(code: int) { ``` Terminate the process with the given exit code ## `Result` _Source: `lib/Result.bux`_ ### `Result_Expect` _func_ ```bux func Result_Expect(r: Result, msg: String) -> int { ``` Unwrap Ok or panic with a custom message ### `Result_UnwrapErr` _func_ ```bux func Result_UnwrapErr(r: Result) -> String { ``` Extract Err payload (panics if Ok) ### `Result_Or` _func_ ```bux func Result_Or(r: Result, other: Result) -> Result { ``` If r is Ok return it, otherwise return other ## `Set` _Source: `lib/Set.bux`_ ### `Set_Remove` _func_ ```bux func Set_Remove(s: *Set, value: T) -> bool { ``` Remove value if present. Rebuilds the table to keep open-addressing correct. ## `String` _Source: `lib/String.bux`_ ### `String_Len` _func_ ```bux func String_Len(s: String) -> uint { ``` Byte length of a C string (`strlen`). ### `String_IsEmpty` _func_ ```bux func String_IsEmpty(s: String) -> bool { ``` True if the string has zero length. ### `String_IsNull` _func_ ```bux func String_IsNull(s: String) -> bool { ``` True if the pointer is null. ### `String_Eq` _func_ ```bux func String_Eq(a: String, b: String) -> bool { ``` Lexicographic equality. ### `String_Concat` _func_ ```bux func String_Concat(a: String, b: String) -> String { ``` Allocate and return `a` concatenated with `b`. ### `String_Copy` _func_ ```bux func String_Copy(s: String) -> String { ``` Heap-copy of `s`. ### `String_StartsWith` _func_ ```bux func String_StartsWith(s: String, prefix: String) -> bool { ``` True if `s` begins with `prefix`. ### `String_EndsWith` _func_ ```bux func String_EndsWith(s: String, suffix: String) -> bool { ``` True if `s` ends with `suffix`. ### `String_Contains` _func_ ```bux func String_Contains(s: String, substr: String) -> bool { ``` True if `substr` occurs anywhere in `s`. ### `String_IsBlank` _func_ ```bux func String_IsBlank(s: String) -> bool { ``` True if empty or only whitespace (space, tab, CR, LF). ### `String_Repeat` _func_ ```bux func String_Repeat(s: String, count: uint) -> String { ``` Repeat `s`, `count` times (`count == 0` → empty string). ### `String_ReplaceAll` _func_ ```bux func String_ReplaceAll(s: String, old: String, new: String) -> String { ``` Replace every non-overlapping occurrence of `old` with `new`. Empty `old` is a no-op (returns `s` unchanged). Safe if `new` contains `old`. ## `Test` _Source: `lib/Test.bux`_ ### `Test_Exit` _func_ ```bux func Test_Exit(code: int) { ``` Exit the process with `code` (for test runners). ### `Test_Assert` _func_ ```bux func Test_Assert(cond: bool) { ``` Assert `cond` is true; abort on failure. ### `Test_AssertEqInt` _func_ ```bux func Test_AssertEqInt(a: int, b: int) { ``` Assert two ints are equal; print both values and exit 1 on mismatch. ### `Test_AssertNeqInt` _func_ ```bux func Test_AssertNeqInt(a: int, b: int) { ``` Assert two ints differ. ### `Test_AssertEqString` _func_ ```bux func Test_AssertEqString(a: String, b: String) { ``` Assert two strings are equal (`String_Eq`). ### `Test_AssertEqBool` _func_ ```bux func Test_AssertEqBool(a: bool, b: bool) { ``` Assert two bools are equal. ### `Test_AssertTrue` _func_ ```bux func Test_AssertTrue(cond: bool) { ``` Assert `cond` is true. ### `Test_AssertFalse` _func_ ```bux func Test_AssertFalse(cond: bool) { ``` Assert `cond` is false. ### `Test_Fail` _func_ ```bux func Test_Fail(msg: String) { ``` Fail the test with a message and exit 1. ### `Test_Pass` _func_ ```bux func Test_Pass(msg: String) { ``` Print a PASS line (for human-readable runners / goldens).