slow.monster

STUDIO HAZE · jeniapp

Topaz source

Open by house policy. Topaz is our own language.

Topaz 5.20.2 · 63 files

apps/slow-monster/core/util.tpz

Topaz · 1039 B · Original file

1// 여러 core 모듈이 쓰는 정수 범위 가두기와 배열 사본 도우미를 둡니다.
2// 범위가두기는 정수를 [하한, 상한] 으로 가두고, 복사추가는 원본을 그대로 둔 새 배열에 원소 하나를 붙여 돌려줍니다.
3// 순수 함수라 같은 인자는 늘 같은 결과입니다.
4// 인자 배열을 바꾸지 않습니다. 한쪽 경계만 가둘 때는 표준 atLeast, atMost 를 씁니다.
5// Shared core utilities: integer range clamping and copy-then-append.
7// 하한을 먼저 보므로 하한이 상한보다 크면 하한보다 작은 값은 하한, 나머지는 상한이 됩니다.
8export function 범위가두기(값: int, 하한: int, 상한: int) -> int {
9 if 값 < 하한 { 하한 } else { 값.atMost(상한) }
12// 배열은 참조로 공유되므로 사본에 붙여 호출자의 배열을 건드리지 않습니다.
13export function 복사추가<T>(원본: Array<T>, 추가: T) -> Array<T> {
14 let mut 결과 = 원본.slice(0, 원본.length)
15 결과.push(추가)
16 결과

SHA256 4deb05ef33fcb0bf2bfd296bb09af7cae602b45961f24a1c1d4ffe17ba29f355