def groups.valid

bend-kit-camber@0.15.0.1 · camber.bend:534

import bend-kit-camber@0.15.0.1/camber.bend as Camber
import Base

534def groups.valid(~P: Data, groups: List<&2, Group<P>>, +all: List<&2, Group<P>>) -> Bool:
535  match groups:
536    case Nil{}:
537      True{}
538    case Group{+id, +ancestors, policy} <> +rest:
539      chain = groups.policies(~P, List.append(&2, U32, ancestors, [id]), all, Nil{})
540      groups.unique(~P, group.find(~P, rest, id)) && Maybe.is_some(&2, List<&2, P>, chain) && groups.valid(~P, rest, all)

Uses (10)

Used by (1)