def retire

bend-collections@1.0.0.0 · src/containers/doubly_linked_list.bend:90

import bend-collections@1.0.0.0/src/containers/doubly_linked_list.bend as DoublyLinkedList
import Base
import bend-collections@1.0.0.0/src/containers/internal/dlist_storage.bend as R
import bend-collections@1.0.0.0/src/containers/types/doubly_linked_list.bend as E

90def retire(~T: Data, tag: U32, depth: Nat, cap: U32, raw: R.DList<T>, gens: Array<U32>, +id: U32, +generation: U32, v: T, exhausted: Bool) -> DList<T> & E.Obs<T>:
91  match exhausted:
92    case True{}:
93      (DL{tag, depth, cap, raw, gens}, E.OVal{Done{v}})
94    case False{}:
95      (DL{tag, depth, cap, R.recycle_slot(~T, raw, id), Array.set(U32, gens, id, U32.inc(generation))}, E.OVal{Done{v}})

Uses (13)

Used by (1)