1# @ajax/mesh-jobs-req
23A change of the job table, as the control port's words (the words after `job`):
45```
6job submit <program>[,<program>..] items <n | a-b | a- | a,b-c,..> [op <o>] [priority <p>]
7 [attempts <a>] [deadline <secs>] [results collect|nonzero|none] [setup <op>:<arg>,..]
8 [members <k>,..]
9job cancel <term>.<n>
10job forget <term>.<n>
11job tone <term>.<n> aces|reinhard
12```
1314Parsing follows the Rust's rules exactly. `items 9` means 0..9. `op` and `setup` take `0x` hex. An
15endless job can't collect per-item results. There are at most 16 setup tasks. Every error message is
16the Rust's, word for word.
1718## Ported from
1920[alpha-rust-mesh](https://github.com/rsafier/alpha-rust-mesh) (Richard Safier, MIT):
21`crates/mesh-host/src/jobs.rs`: `Submit`, `SUBMIT_USAGE`, `int`, `Req` (`parse`).
2223## Tests
2425`tests/req.c`: 36 control lines, valid and not, each answered as the Rust answers it (golden answers
26from the Rust), including the requests of the Rust's `ops_frames_and_the_merge` and
27`a_job_of_two_programs`.
2829## Licence
3031MIT. See the repository's LICENSE.