슬라이스는 주소와 길이일 뿐입니다. 둘 중 어느 것도 뒤에 있는 할당을 살려 두지 않고, Zig 0.15.2 레퍼런스도 포인터의 유효성과 수명은 프로그래머가 책임진다고 분명히 적고 있습니다. 함수가 슬라이스를 반환한다고 저장 공간의 수명이 늘어나지는 않습니다.
그래서 카탈로그의 names 호출 문서에는 빌려주는 것이 누구 소유인지 적혀 있어야 합니다. 여기서는 카탈로그가 할당을 소유하고, 호출자는 그 뷰를 해제하지 않습니다. 카탈로그를 파괴하면 모든 뷰가 무효가 됩니다. 새 저장 공간으로 바꿔 끼우는 리로드가 성공해도 이전 뷰는 전부 무효가 됩니다. 이름을 추가할 때 저장 공간이 커지면서 옮겨질 수 있다면 추가 연산에도 같은 경고가 필요합니다. 슬라이스를 복사하면 서술자가 복사될 뿐 이름은 복사되지 않습니다.
실패는 따로 한 문장을 받아야 합니다. 교체본을 먼저 만들고 성공했을 때만 설치하는 리로드라면, 준비가 실패해도 이전 할당과 그 뷰는 유효하게 남습니다. 이전 저장 공간부터 비우는 구현은 그런 약속을 할 수 없으니 문서에 그렇게 밝혀야 합니다.
다른 형태도 있습니다. 할당한 복사본을 돌려주고, 문서에 적힌 할당자로 호출자가 해제하게 하는 방식입니다. 수명은 독립적이 되지만 호출하는 곳마다 소유권 관리가 늘어납니다. 어느 쪽이 나은지는 호출자가 실제로 어떻게 읽고, 리로드하고, 정리하는지에 달려 있는데, 그 흐름은 아직 추적해 보지 않았습니다.