Topazdocs
Стандартная библиотека и среда

Обзор стандартной библиотеки

Семейства стандартной библиотеки Topaz и общие правила для поддерживаемых целей.

Стандартная библиотека — проверяемый публичный контракт, а не набор host-удобств. Имена, signatures, mutation requirements, value semantics, host boundaries и evidence disposition зафиксированы.

Канонический контракт

Функции прелюдии доступны без импорта. Более крупные группы находятся во встроенных пространствах имён и модулях std.*. Встроенные члены используют обычный синтаксис обращения через точку; пользовательские методы с неявным получателем объявлять нельзя.

Публичная поверхность

Inventory содержит 14 free functions, константу None, 75 static namespace members, 127 receiver members и 22 virtual modules с 198 exports. Семейства охватывают conversion, math, bytes/encoding, hashes, filesystem/path, CLI, regex, CSV/TOML/JSON/URL, HTTP/DOM boundaries, dates, BigInt, Decimal, generators/parsers и test-profile helpers. Virtual modules отражают точные export rows, а не dynamic namespace.

Наблюдаемое поведение

Позиции скаляров строки не являются byte positions. Collection snapshots и iteration сохраняют заданный порядок. Parsing/decoding используют объявленные Option/Result. Arithmetic и неверные операции остаются loud. Canonical encoding, hash, formats, dates, paths, decimal и big-integer не передают наблюдаемую семантику неопределённой host library.

Текущая поддержка

Описанные семейства библиотеки проверяются компилятором и тестируются на поддерживаемых целях. Сжатие пока ограничено библиотечным путём Rust; остальные ограничения отдельных целей отмечены на соответствующих страницах.

Ограничения и исключения

Host-effect names пересекают только явную profile boundary; импорт не даёт ambient network, clock, environment, process, database или filesystem authority. Test.*, free assert и std.test доступны только test-profile. Unknown names/modules/members завершаются статической ошибкой, не dynamic lookup.

Пример

TOPAZ
let parsed: Option<int> = toInt("42")
let values: Array<int> = Array.of(1, 2, 3)
let doubled = map(values, value => value * 2)

print("{parsed}:{doubled}")

Связанные правила