def AaNet.add

bend-osdev-apparmor@0.1.0.0 · rule_network.bend:82

import bend-osdev-apparmor@0.1.0.0/rule_network.bend as RuleNetwork
import Base
import bend-osdev-apparmor@0.1.0.0/error.bend as E

82# the rule so far and the next word: a domain only first, then at most one type or protocol
83def AaNet.add(k: Nat, first: Bool, r: AaNetRule, w: List<&2, U32>, src: E.AaSrc) -> Result<&2, &2, E.AaError, AaNetRule>:
84  match k:
85    case 0n:
86      AaNet.set_domain(first, r, w, src)
87    case 1n+k1:
88      match k1:
89        case 0n:
90          AaNet.set_type(r, w, src)
91        case 1n+k2:
92          match k2:
93            case 0n:
94              AaNet.set_proto(r, w, src)
95            case 1n+k3:
96              match k3:
97                case 0n:
98                  Fail{E.AaSrc.unsupported(src)}
99                case 1n+k4:
100                  Fail{E.AaSrc.name(src)}

Uses (13)

Used by (1)