표준 라이브러리는 호스트 언어의 편의 함수를 그대로 노출하지 않습니다. 사용할 수 있는 이름, 타입, 변경 가능 여부, 순서, 실패 방식을 Topaz 규칙으로 정합니다.
정식 계약
기본 범위에는 print, 숫자·문자열 변환, Option/Result 도우미, Array/Map/Set, 파일 입출력이 포함됩니다. 추가 모듈은 수학, 바이트와 인코딩, 해시, 경로, 명령행 인수, 정규식, CSV·TOML·JSON·URL, 날짜, BigInt, Decimal 등을 제공합니다. 목록에 없는 이름은 실행 중에 찾지 않고 검사 단계에서 거부됩니다.
공개 표면
자유 함수와 타입 이름공간의 정적 함수, 값에서 호출하는 멤버를 함께 사용합니다. 멤버 호출이 있다고 해서 사용자가 임의의 수신자 메서드를 선언할 수 있는 것은 아닙니다. 호스트 효과가 있는 함수는 각 사용 프로필에서 명시적으로 허용해야 합니다.
관찰 가능한 동작
문자열 위치는 바이트가 아니라 유니코드 스칼라 단위입니다. 컬렉션 순회와 스냅샷은 정해진 순서를 유지합니다. 파싱과 디코딩에서 예상할 수 있는 실패는 Option이나 Result로 돌려줍니다. 정수 범위 초과나 잘못된 연산은 조용히 바뀜지 않고 실패합니다.
현재 지원
현재 도구 모음의 검사기와 해석기·Rust·Python 경로는 이 매뉴얼에 나열한 표준 API를 공통으로 인식합니다. 압축 관련 API는 현재 공통 세 경로 지원 범위에서 제외되므로 해당 타겟의 상태를 따로 확인해야 합니다.
제약과 제외
모듈을 가져온다고 해서 네트워크, 시계, 환경 변수, 프로세스, 데이터베이스, 파일 시스템 권한이 자동으로 생기지 않습니다. Test.*, 자유 함수 assert, std.test는 테스트 프로필에서만 사용할 수 있습니다.
예제
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}")