code wiki / _hdl_build / consent_step.nx

consent_step.nx source

↩ module page · 24 lines · 746 B

1// AUTHORED BY THE NISHI BUILDER (pattern: STATE_MACHINE) -- baked transition walk, no Claude logic 2import "nx_syscalls.nx" 3func consent_step_step(s: i64, e: i64) -> i64 { 4 if s < 0 { return 0 - 1 } 5 if s >= 4 { return 0 - 1 } 6 if e < 0 { return 0 - 1 } 7 if e >= 4 { return 0 - 1 } 8 if s == 0 { if e == 0 { return 1 } } 9 if s == 1 { if e == 1 { return 2 } } 10 if s == 1 { if e == 2 { return 3 } } 11 if s == 3 { if e == 0 { return 1 } } 12 if s == 3 { if e == 3 { return 1 } } 13 return 0 - 1 14} 15func consent_step_run(ev: *i64, n: i64, s0: i64) -> i64 { 16 var s: i64 = s0 17 var i: i64 = 0 18 while i < n { 19 s = consent_step_step(s, ev[i]) 20 if s < 0 { return 0 - 1 } 21 i = i + 1 22 } 23 return s 24}