def pth1_ups

bend-osdev-acpi@0.1.1.0 · PROOF.bend:2136

import bend-osdev-acpi@0.1.1.0/PROOF.bend as PROOF
import Base
import bend-osdev-bytes@0.1.1.0/bytes.bend as B
import bend-osdev-acpi@0.1.1.0/error.bend as E
import bend-osdev-acpi@0.1.1.0/aml_name.bend as N

2136def pth1_ups(+s: B.Octets, +L: List<&2, U32>, +R: List<&2, U32>, +e: {B.Octets.to_list(s) == L : List<&2, U32>}, +ok: {N.nm.seg_ok.list(L) == True{} : Bool}) -> {Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.ups(B.append(B.append(L, Nil{}), R), N.nm.head_kind(B.append(B.append(L, Nil{}), R))) : Result<&2, &2, E.AcpiError, N.AmlNameL>}:
2137  match L:
2138    case Nil{}:
2139      Empty.absurd({Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.ups(B.append(B.append(Nil{}, Nil{}), R), N.nm.head_kind(B.append(B.append(Nil{}, Nil{}), R))) : Result<&2, &2, E.AcpiError, N.AmlNameL>}, ft_absurd(ok))
2140    case Con{c0, L1}:
2141      match L1:
2142        case Nil{}:
2143          Empty.absurd({Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.ups(B.append(B.append(Con{c0, Nil{}}, Nil{}), R), N.nm.head_kind(B.append(B.append(Con{c0, Nil{}}, Nil{}), R))) : Result<&2, &2, E.AcpiError, N.AmlNameL>}, ft_absurd(ok))
2144        case Con{c1, L2}:
2145          match L2:
2146            case Nil{}:
2147              Empty.absurd({Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.ups(B.append(B.append(Con{c0, Con{c1, Nil{}}}, Nil{}), R), N.nm.head_kind(B.append(B.append(Con{c0, Con{c1, Nil{}}}, Nil{}), R))) : Result<&2, &2, E.AcpiError, N.AmlNameL>}, ft_absurd(ok))
2148            case Con{c2, L3}:
2149              match L3:
2150                case Nil{}:
2151                  Empty.absurd({Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.ups(B.append(B.append(Con{c0, Con{c1, Con{c2, Nil{}}}}, Nil{}), R), N.nm.head_kind(B.append(B.append(Con{c0, Con{c1, Con{c2, Nil{}}}}, Nil{}), R))) : Result<&2, &2, E.AcpiError, N.AmlNameL>}, ft_absurd(ok))
2152                case Con{c3, L4}:
2153                  match L4:
2154                    case Con{c4, L5}:
2155                      Empty.absurd({Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.ups(B.append(B.append(Con{c0, Con{c1, Con{c2, Con{c3, Con{c4, L5}}}}}, Nil{}), R), N.nm.head_kind(B.append(B.append(Con{c0, Con{c1, Con{c2, Con{c3, Con{c4, L5}}}}}, Nil{}), R))) : Result<&2, &2, E.AcpiError, N.AmlNameL>}, ft_absurd(ok))
2156                    case Nil{}:
2157                      %seg_kind(c0, c1, c2, c3, ok) : {Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.ups(Con{c0, Con{c1, Con{c2, Con{c3, R}}}}, _) : Result<&2, &2, E.AcpiError, N.AmlNameL>}
2158                      %seg_l(s, Con{c0, Con{c1, Con{c2, Con{c3, Nil{}}}}}, R, e, ok) : {Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.named(False{}, 0n, N.nm.segs.go(0n, _)) : Result<&2, &2, E.AcpiError, N.AmlNameL>}
2159                      {==}

Uses (19)

Used by (1)