def step_at

bend-collections@1.0.0.0 · src/containers/dynamic_array.bend:460

import bend-collections@1.0.0.0/src/containers/dynamic_array.bend as DynamicArray
import Base
import bend-collections@1.0.0.0/src/containers/types/dynamic_array.bend as E

460def step_at(~T: Data, da: DynArray<&2, T>, op: E.Op<T>) -> DynArray<&2, T> & E.Obs<T>:
461  match op:
462    case E.Length{}:
463      obs_nat(T, length(T, da))
464    case E.Capacity{}:
465      obs_nat(T, capacity(T, da))
466    case E.Get{i}:
467      obs_item(T, get_at(~T, da, i))
468    case E.Set{i, v}:
469      obs_unit(T, set_at(~T, da, i, v))
470    case E.Push{v}:
471      obs_unit(T, push_at(~T, da, v))
472    case E.Pop{}:
473      obs_item(T, pop_at(~T, da))
474    case E.Reserve{n}:
475      obs_unit(T, reserve_at(~T, da, n))
476    case E.Clear{}:
477      (clear_at(~T, da), E.OUnit{Done{Unit{}}})
478    case E.ToList{}:
479      obs_list(T, to_list_at(~T, da))

Uses (20)

Used by (1)