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
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)}