state

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 21, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package state는 사용자 판단이 담긴 영구 상태를 위키 루트의 engram-state.yaml 에 저장한다. 잃었을 때 사용자 판단이 사라지는 것은 이 파일에 두고, 원문에서 재생성되는 것은 .engram/ 에 둔다. ADR 0028.

Index

Constants

View Source
const StateFileName = "engram-state.yaml"

StateFileName은 영구 상태 파일 이름이다. 위키 루트에 두고 git이 추적한다.

Variables

This section is empty.

Functions

This section is empty.

Types

type State

type State struct {
	BridgeRejections [][2]string
}

State는 위키의 영구 상태다. 현재 키는 bridge의 기각 쌍 하나다. 메모리 안의 상태는 언제나 정규형이다. 쌍은 슬러그 오름차순, 목록은 쌍 기준 오름차순이며 중복이 없다.

func Load

func Load(wikiRoot string) (State, error)

Load는 위키 루트의 상태 파일을 읽는다. 파일이 없으면 빈 상태와 nil 에러를 낸다. 기각은 아직 없다는 뜻이지 판단을 잃었다는 뜻이 아니다. 파싱 실패는 에러다. 이 파일은 사용자 판단의 진실원이므로 조용히 빈 것으로 취급하면 판단을 버리는 것이다.

func (State) IsRejected

func (s State) IsRejected(a, b string) bool

IsRejected는 쌍이 기각됐는지를 반환한다. 순서는 무관하다.

func (*State) Reject

func (s *State) Reject(a, b string) bool

Reject는 쌍을 기각 목록에 추가한다. 새로 추가됐으면 true를 낸다. 추가 뒤 목록을 다시 정규화해 메모리 상태의 정렬 불변식을 유지한다.

func (State) Save

func (s State) Save(wikiRoot string) error

Save는 상태를 위키 루트에 쓴다. 정규형으로 쓰므로 같은 상태를 두 번 저장하면 바이트까지 같다. 파일이 없을 때 만드는 것은 호출자가 판단한다.

func (*State) Unreject

func (s *State) Unreject(a, b string) bool

Unreject는 기각을 되돌린다. 실제로 지웠으면 true를 낸다.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL