def AaParse.dispatch

bend-osdev-apparmor@0.1.0.0 · parse.bend:1158

import bend-osdev-apparmor@0.1.0.0/parse.bend as Parse
import Base
import bend-osdev-apparmor@0.1.0.0/perm.bend as P
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/profile.bend as PR
import bend-osdev-apparmor@0.1.0.0/rule_file.bend as F
import bend-osdev-apparmor@0.1.0.0/rule_capability.bend as RC
import bend-osdev-apparmor@0.1.0.0/rule_network.bend as RN
import bend-osdev-apparmor@0.1.0.0/rule_signal.bend as RS
import bend-osdev-apparmor@0.1.0.0/rule_ptrace.bend as RP
import bend-osdev-apparmor@0.1.0.0/rule_mount.bend as RM
import bend-osdev-apparmor@0.1.0.0/rule_dbus.bend as RD
import bend-osdev-apparmor@0.1.0.0/rule_change_profile.bend as RX

1158def AaParse.dispatch(k: Nat, +t: T.AaTerm, +rest: List<&2, T.AaTerm>, +q: P.AaQual, +als: List<&2, AaAlias>, +src: E.AaSrc) -> Result<&2, &2, E.AaError, PR.AaRules>:
1159  match k:
1160    case 0n:
1161      AaParse.wrap.file(F.AaFile.parse(Con{t, rest}, q, src), als)
1162    case 1n+k1:
1163      match k1:
1164        case 0n:
1165          AaParse.wrap.cap(RC.AaCap.parse(rest, q, src))
1166        case 1n+k2:
1167          match k2:
1168            case 0n:
1169              AaParse.wrap.net(RN.AaNet.parse(rest, q, src))
1170            case 1n+k3:
1171              match k3:
1172                case 0n:
1173                  AaParse.wrap.signal(RS.AaSignal.parse(rest, q, src))
1174                case 1n+k4:
1175                  match k4:
1176                    case 0n:
1177                      AaParse.wrap.ptrace(RP.AaPtrace.parse(rest, q, src))
1178                    case 1n+k5:
1179                      match k5:
1180                        case 0n:
1181                          AaParse.wrap.mount(RM.AaMount.parse(RM.AaMountOpMount{}, rest, q, src))
1182                        case 1n+k6:
1183                          match k6:
1184                            case 0n:
1185                              AaParse.wrap.mount(RM.AaMount.parse(RM.AaMountOpRemount{}, rest, q, src))
1186                            case 1n+k7:
1187                              match k7:
1188                                case 0n:
1189                                  AaParse.wrap.mount(RM.AaMount.parse(RM.AaMountOpUmount{}, rest, q, src))
1190                                case 1n+k8:
1191                                  match k8:
1192                                    case 0n:
1193                                      AaParse.wrap.dbus(RD.AaDbus.parse(rest, q, src))
1194                                    case 1n+k9:
1195                                      match k9:
1196                                        case 0n:
1197                                          AaParse.wrap.change(RX.AaChange.parse(rest, q, src))
1198                                        case 1n+k10:
1199                                          match k10:
1200                                            case 0n:
1201                                              AaParse.wrap.file(F.AaFile.parse(rest, q, src), als)
1202                                            case 1n+k11:
1203                                              match k11:
1204                                                case 0n:
1205                                                  Fail{E.AaSrc.unsupported(src)}
1206                                                case 1n+k12:
1207                                                  Fail{E.AaSrc.preamble(src)}

Uses (28)

Used by (1)