Skip to content

rustsys_cli::proto: numbers, text and tables

PROTO-REQ-0100 Numbers are shown with fixed decimals per unit: nanoseconds 4, area 4, seconds 3, percent 1, counts as integers without grouping. -0.0 shows as 0.0000; a negative value keeps its sign when it rounds to zero. A missing value shows as — (TSV: empty field, JSON: null). Exact mode prints the shortest decimal that reads back to the same f64. Control characters in names read from inputs or reports are shown escaped.

PROTO-REQ-0110 Every number that a front end shows in a summary is a Shown field: label, text, unit and source, the source being a JSON pointer into the report or a named derivation rule (for example derived: count × area of the cell). The text of a report-sourced field is the formatted value at that pointer.

PROTO-REQ-0120 The text results of the command line (synth, check synth) and of rustsys show come from the same renderers.

PROTO-REQ-0130 A TableModel gives the columns (key, title, unit, alignment) and, for any row, the value of any column in O(1) without allocation. Models exist for synthesis cells, unused cells and phases, and for checker mismatches.

PROTO-REQ-0131 Filter expressions (rustsys show --filter): terms separated by spaces, all of which must hold. A term is KEY OP NUMBER with OP in <, <=, >, >=, =; KEY=WORD; or a WORD matched against the name column: a glob when it contains * or ? (the syntax of --dont-use), otherwise a substring; case-insensitive unless the word contains an uppercase letter. An unknown key or a malformed number is an error that lists the known keys. A missing value satisfies no numeric term.

PROTO-REQ-0132 Sorting uses the total order of f64 values; missing values sort last in both directions; ties keep the model's row order, so the order does not depend on the thread count.