Skip to content

Documentation / @finchart/core / TailChange

Type Alias: TailChange

TailChange = { count: number; kind: "append"; } | { count: number; kind: "replace"; } | { kind: "none"; }

Defined in: packages/core/src/data/tail-delta.ts:13

두 배열 사이의 변화가 꼬리뿐인지 판정한다.

computation 노드는 입력을 Source.read()로만 받아 변화의 모양을 통지받을 길이 없다 — 대신 점 객체의 신원이 그 정보를 나른다. 바뀌지 않은 점 객체는 재사용되므로(Source 계약), 앞부분의 신원이 전부 같고 꼬리만 다르면 그 변화는 꼬리다.

공유 구간을 전부 확인한다 — 표본 검사가 아니다. 몇 점만 보면 중간 변경을 놓쳐 조용히 틀린 지표가 된다. 전수 확인은 포인터 비교 O(n)이라 아끼려는 재계산(수 패스 O(n))보다 항상 싸다.

Union Members

Type Literal

{ count: number; kind: "append"; }

앞은 그대로고 뒤에 count개가 붙었다.


Type Literal

{ count: number; kind: "replace"; }

앞은 그대로고 마지막 count개가 갈렸다. 이 판정기는 항상 1을 낸다 — 필드는 문(deriveLast·calcLast) 계약의 모양(append와 대칭)을 지킨다.


Type Literal

{ kind: "none"; }

배열 신원은 다른데 내용 신원이 전부 같다 — 계산할 것이 없다.