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))