def AaMtB.free

bend-osdev-apparmor@0.1.0.0 · rule_mount.bend:162

import bend-osdev-apparmor@0.1.0.0/rule_mount.bend as RuleMount
import Base
import bend-osdev-apparmor@0.1.0.0/text.bend as X
import bend-osdev-apparmor@0.1.0.0/token.bend as T
import bend-osdev-apparmor@0.1.0.0/error.bend as E
import bend-osdev-apparmor@0.1.0.0/rule.bend as R

162# a term with nothing pending
163def AaMtB.free(t: T.AaTerm, +b: AaMtB, +src: E.AaSrc) -> Result<&2, &2, E.AaError, AaMtB>:
164  match t:
165    case T.AaTmWord{+w}:
166      Bool.pick(Result<&2, &2, E.AaError, AaMtB>, Bool.or(X.AaText.is(w, "fstype"), X.AaText.is(w, "vfstype")), Done{AaMtB.pend(b, 1n)}, Bool.pick(Result<&2, &2, E.AaError, AaMtB>, X.AaText.is(w, "options"), Done{AaMtB.pend(b, 2n)}, AaMtB.free.path(R.AaRule.glob_text(w, src), b, src)))
167    case T.AaTmQuoted{q}:
168      AaMtB.free.path(R.AaRule.glob_text(q, src), b, src)
169    case T.AaTmCond{k, v}:
170      AaMtB.cond(k, v, b, src)
171    case T.AaTmArrow{}:
172      AaMtB.arrow(b, src)
173    case T.AaTmList{xs}:
174      Fail{E.AaSrc.syntax(src)}

Uses (14)

Used by (1)