def AaFile.target.check
bend-osdev-apparmor@0.1.0.0 · rule_file.bend:368
import bend-osdev-apparmor@0.1.0.0/rule_file.bend as RuleFile
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
368
369
370
371def AaFile.target.check(t: Maybe<&2, List<&2, U32>>, +lead: Bool, fp: AaFPerms, src: E.AaSrc) -> Result<&2, &2, E.AaError, AaFPerms>:
372 match t:
373 case None{}:
374 Done{fp}
375 case Some{x}:
376 match fp:
377 case AaFPerms{+p, +e}:
378 Bool.pick(Result<&2, &2, E.AaError, AaFPerms>, Bool.and(AaFp.is_some(e), Bool.not(Bool.and(lead, P.AaPerms.has(p, 3n)))), Done{AaFPerms{p, e}}, Fail{E.AaSrc.perms(src)})