def groups.prepare

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

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

559def groups.prepare(~P: Data, groups: List<&2, Group<P>>, +all: List<&2, Group<P>>) -> Result<&2, &2, RegistrationError, List<&2, GroupPlan<P>>>:
560  match groups:
561    case Nil{}:
562      Done{Nil{}}
563    case Group{id, ancestors, policy} <> rest:
564      +ids = List.append(&2, U32, ancestors, [id])
565      do Result<&2, &2, RegistrationError, List<&2, GroupPlan<P>>>:
566        policies : List<&2, P> <- routes.policies(~P, groups.policies(~P, ids, all, Nil{}), ids)
567        plans : List<&2, GroupPlan<P>> <- groups.prepare(~P, rest, all)
568        return GroupPlan{ids, policies} <> plans

Uses (11)

Used by (1)