def AaChB.finish

bend-osdev-apparmor@0.1.0.0 · rule_change_profile.bend:135

import bend-osdev-apparmor@0.1.0.0/rule_change_profile.bend as RuleChangeProfile
import Base
import bend-osdev-apparmor@0.1.0.0/perm.bend as P
import bend-osdev-apparmor@0.1.0.0/error.bend as E

135# an exec mode needs an exec condition; an arrow needs a target
136def AaChB.finish(q: P.AaQual, b: AaChB, src: E.AaSrc) -> Result<&2, &2, E.AaError, AaChangeRule>:
137  match b:
138    case AaChB{+m, +e, ar, +tg}:
139      +bad = Bool.or(Bool.and(Nat.is_gt(m, 0n), Bool.not(AaChange.is_some(e))), Bool.and(ar, Bool.not(AaChange.is_some(tg))))
140      Bool.pick(Result<&2, &2, E.AaError, AaChangeRule>, bad, Fail{E.AaSrc.syntax(src)}, Done{AaChangeRule{q, e, Bool.not(Nat.is_eq(m, 2n)), tg}})

Uses (14)

Used by (1)