nx_swcompare_lib.nx
buildroot/runtime/nx_swcompare_lib.nx
about
dependencies 25 imports · 28 importers
diagram shows first 10 each side; +15 more imports, +18 more importers in the complete lists below.
imports: nx_syscalls.nxnx_symdecl_lib.nxnx_market_ladder_lib.nxnx_brand_tokens.nxnx_lineconf_lib.nxnx_estate_path.nxnx_imgattr_lib.nxnx_evprofile_lib.nxnx_bench_receipt_lib.nxnx_barfresh_lib.nxnx_cdmap_lib.nxnx_leaderboard_lib.nxnx_cdmap_raster_lib.nxnx_chartlay_lib.nxnx_compare_growth_json.nxnx_ladder_lib.nxnx_gauge_lib.nxnx_costest_lib.nxnx_assets_lib.nxnx_treatment_lib.nxnx_tool_run.nxnx_sha256.nxnx_json.nxnx_json_lib.nxnx_fio.nx
imported by: nx_cdmap_interact_gate.nxnx_compare_growth_incumbent_b_20260910.nxnx_compare_growth_incumbent_gate_20260910.nxnx_compare_growth_matrix_full_20260910.nxnx_compare_ladder_canon_gate_20260910.nxnx_compare_ladder_data_gate_20260910.nxnx_compare_ladder_growth_gate_20260910.nxnx_compare_ladder_isolated_lib.nxnx_compare_rank.nxnx_compare_rank_artifact_20260910.nxnx_compare_rank_canon_capture_20260910.nxnx_compare_rank_capture_gate_20260910.nxnx_compare_rank_live_capture_20260910.nxnx_compare_rank_refusal_gate_20260910.nxnx_evidence_snapshot_canonical_gate_t138.nxnx_gaps_pass_gate.nxnx_observability_graph_canonical_gate_t138.nxnx_observability_graph_gate_t138.nxnx_print_css_gate.nxnx_prop_pass_gate.nxnx_swcompare_compute.nxnx_swcompare_hub.nxnx_swcompare_matrix.nxnx_swcompare_matrix_rank_guard_t162.nxnx_swcompare_office.nxnx_swcompare_sota.nxnx_swcompare_sota_lib.nxnx_swcompare_watch_gate.nx
structs
| 2432 | struct SgPlan |
| 3034 | struct EfsDoc { src: *u8, len: i64, tokens: *i64, count: i64, error: i64 } |
consts
| 108 | const RV_NONE: i64 = 0 |
| 109 | const RV_CITED: i64 = 1 |
| 110 | const RV_UNCITED: i64 = 2 |
| 191 | const RP_NO: i64 = 0 |
| 192 | const RP_REVIEW: i64 = 1 |
| 193 | const RP_YES: i64 = 2 |
| 194 | const RP_KEYCAP: i64 = 128 |
| 313 | const SWL_DSTATE_CAP: i64 = 20480 // .debtstate sidecar read buffer. The NUL slot is DERIVED (CAP - 1) |
| 420 | const SWL_RELEASE_I64_MAX: i64 = 9223372036854775807 |
| 501 | const SWL_TRT_ALLOW: *u8 = "tool_allowlist.conf" |
| 502 | const SWL_TRT_ROSTER: *u8 = "knowledge/gateroster.conf" |
| 503 | const SWL_TRT_STORE_PUT: *u8 = "./nx_store_put.elf" |
| 504 | const SWL_TRT_CLOCK_MANIFEST: *u8 = "knowledge/store/clockjobs-manifest.txt" // a plane is a prefix, not a file: its manifest is what the probe can open, and the prefix is that path minus the manifest name |
| 505 | const SWL_TRT_MANIFEST_TAIL: *u8 = "manifest.txt" |
| 506 | const SWL_TRT_CLOCK_CAP: i64 = 1048576 // captured stdout of the clock DESIRED plane load (a fork, size unknowable): 11,935 B for 189 rows on 2026-09-16, 88x headroom; a fill is ANNOUNCED on the page and the plane treated as unobserved, never read as a prefix |
| 507 | const SWL_TRT_WF_PFX: *u8 = "knowledge/store/plan-" |
| 508 | const SWL_TRT_WF_SFX: *u8 = "-manifest.txt" |
| 509 | const SWL_TRT_PATH_CAP: i64 = 1024 // one composed estate path, the reserve every ep_* probe writes into |
| 510 | const SWL_TRT_EV_ALLOW: i64 = 0 |
| 511 | const SWL_TRT_EV_ROSTER: i64 = 1 |
| 512 | const SWL_TRT_EV_CLOCK: i64 = 2 |
| 513 | const SWL_TRT_EV_UNPROVEN: i64 = 3 |
| 514 | const SWL_TRT_EV_SLOTS: i64 = 4 |
| 888 | const WP_ST_LANDED: i64 = 1 |
| 889 | const WP_ST_WATCHING: i64 = 2 |
| 890 | const WP_ST_PRESENT: i64 = 3 |
| 891 | const WP_ST_MISSING: i64 = 4 |
| 892 | const WP_ST_ABSENT: i64 = 5 |
| 1016 | const PL_MAXROWS: i64 = 32 |
| 1260 | const SC_TOKCAP: i64 = 16384 |
| 1261 | const SC_BP_MD: i64 = 860 |
| 1262 | const SC_BP_SM: i64 = 640 |
| 1350 | const SC_PRINT_MARGIN_MM: i64 = 14 |
| 1351 | const SC_PRINT_BODY_PT: i64 = 11 |
| 1357 | const SC_FEED_LINK_TAG: *u8 = "<link rel='alternate' type='application/rss+xml' title='Nishi /compare daily positions and reviews' href='/compare/feed.xml'> |
| 1435 | const SC_CAP_SPLIT: i64 = 496 |
| 1678 | const BD_SECS_PER_DAY: i64 = 86400 |
| 1679 | const BD_DAYS_TO_CIVIL_SHIFT: i64 = 719468 // days from 0000-03-01 to 1970-01-01 (Hinnant, civil_from_days) |
| 1680 | const BD_DAYS_PER_ERA: i64 = 146097 |
| 1681 | const BD_DAYS_PER_4Y: i64 = 1460 |
| 1682 | const BD_DAYS_PER_100Y: i64 = 36524 |
| 1683 | const BD_DAYS_PER_ERA_LESS1: i64 = 146096 |
| 1684 | const BD_DAYS_PER_YEAR: i64 = 365 |
| 1685 | const BD_YEARS_PER_ERA: i64 = 400 |
| 1686 | const BD_MONTH_NUM: i64 = 153 |
| 1687 | const BD_MONTH_SHIFT: i64 = 2 |
| 1688 | const BD_MONTH_SCALE: i64 = 5 |
| 1689 | const BD_MARCH: i64 = 3 |
| 1690 | const BD_JAN_FROM_MP: i64 = 9 |
| 1691 | const BD_MP_WRAP: i64 = 10 |
| 1692 | const BD_FEB: i64 = 2 |
| 1693 | const BD_TEN: i64 = 10 |
| 1694 | const BD_SHA_SHOWN: i64 = 12 |
| 1739 | const PR_READ_CAP: i64 = 65536 // announces when it binds; a .proposed file is rows, not a corpus |
| 1740 | const PR_PATH_CAP: i64 = 600 // knowledge/compare/<dom>.proposed -- the reserve its sibling passes use |
| 1741 | const PR_I64_BYTES: i64 = 8 |
| 1742 | const PR_NF: i64 = 10 // fields per prop| row, from the writer's own emit order (ip_emit) |
| 1743 | const PR_SPLIT: i64 = 16 // field table: PR_NF plus room, so an over-long row is read whole rather than clipped to fit |
| 1744 | const PR_F_TAG: i64 = 0 |
| 1745 | const PR_F_EPOCH: i64 = 1 |
| 1746 | const PR_F_APPID: i64 = 2 |
| 1747 | const PR_F_NAME: i64 = 3 |
| 1748 | const PR_F_SIGNAL: i64 = 4 |
| 1749 | const PR_F_KIND: i64 = 5 |
| 1750 | const PR_F_TERM: i64 = 6 |
| 1751 | const PR_F_DOMAIN: i64 = 7 |
| 1752 | const PR_F_TITLE: i64 = 8 |
| 1753 | const PR_F_EVIDENCE: i64 = 9 |
| 1754 | const PR_CH_COMMENT: i64 = 35 |
| 1755 | const PR_CH_LF: i64 = 10 |
| 1756 | const PR_CH_COMMA: i64 = 44 |
| 1757 | const PR_CH_COLON: i64 = 58 |
| 1758 | const PR_CH_LBRACE: i64 = 123 |
| 1759 | const PR_CH_RBRACE: i64 = 125 |
| 1760 | const PR_CH_LBRACKET: i64 = 91 |
| 1761 | const PR_CH_RBRACKET: i64 = 93 |
| 1767 | const PR_NAME_CAP: i64 = 256 |
| 1768 | const PR_NAME_DIR: *u8 = "knowledge/reviews/steam/" |
| 1769 | const PR_NAME_DIR_UP: *u8 = "../knowledge/reviews/steam/" |
| 1770 | const PR_NAME_SUFFIX: *u8 = ".name" |
| 1880 | const FI_READ_CAP: i64 = 262144 // announces when it binds: a .field is rows, not a corpus |
| 1881 | const FI_PATH_CAP: i64 = 600 |
| 1882 | const FI_I64_BYTES: i64 = 8 |
| 1883 | const FI_NF: i64 = 7 // rival|name|seeds_hit|mentions|first_seed|link|kind (nx_field_lib fl_emit) |
| 1884 | const FI_SPLIT: i64 = 12 |
| 1885 | const FI_F_TAG: i64 = 0 |
| 1886 | const FI_F_NAME: i64 = 1 |
| 1887 | const FI_F_SEEDS: i64 = 2 |
| 1888 | const FI_F_MENTIONS: i64 = 3 |
| 1889 | const FI_F_FIRST: i64 = 4 |
| 1890 | const FI_F_LINK: i64 = 5 |
| 1891 | const FI_F_KIND: i64 = 6 |
| 1892 | const FI_SHOW: i64 = 60 // rows rendered; the rest are COUNTED and the stats line says shown of count |
| 1893 | const FI_COLS_MAX: i64 = 16 |
| 1894 | const FI_CH_COMMENT: i64 = 35 |
| 1895 | const FI_CH_LF: i64 = 10 |
| 1896 | const FI_CH_PIPE: i64 = 124 |
| 1897 | const FI_CH_COMMA: i64 = 44 |
| 1898 | const FI_CH_COLON: i64 = 58 |
| 1899 | const FI_CH_LBRACE: i64 = 123 |
| 1900 | const FI_CH_RBRACE: i64 = 125 |
| 1901 | const FI_CH_LBRACKET: i64 = 91 |
| 1902 | const FI_CH_RBRACKET: i64 = 93 |
| 1903 | const FI_UPPER_A: i64 = 65 |
| 1904 | const FI_UPPER_Z: i64 = 90 |
| 1905 | const FI_CASE_DELTA: i64 = 32 |
| 2061 | const GP_PATH_CAP: i64 = 600 |
| 2062 | const GP_READ_CAP: i64 = 65536 |
| 2063 | const GP_SPLIT: i64 = 8 |
| 2064 | const GP_NF: i64 = 5 |
| 2065 | const GP_F_LABEL: i64 = 1 |
| 2066 | const GP_F_PATH: i64 = 2 |
| 2067 | const GP_F_CAD: i64 = 3 |
| 2068 | const GP_F_NOTE: i64 = 4 |
| 2069 | const GP_ROW_CAP: i64 = 1024 |
| 2070 | const GP_CH_NL: i64 = 10 |
| 2071 | const GP_CH_HASH: i64 = 35 |
| 2072 | const GP_CH_COMMA: i64 = 44 |
| 2073 | const GP_CH_COLON: i64 = 58 |
| 2074 | const GP_CH_LBRACKET: i64 = 91 |
| 2075 | const GP_CH_RBRACKET: i64 = 93 |
| 2076 | const GP_CH_LBRACE: i64 = 123 |
| 2077 | const GP_CH_RBRACE: i64 = 125 |
| 2190 | const GX_FEED: *u8 = "knowledge/recordgaps.conf.rows" |
| 2191 | const GX_STAMP: *u8 = "knowledge/recordgaps.conf.stamp" |
| 2192 | const GX_READ_CAP: i64 = 4194304 |
| 2193 | const GX_NF: i64 = 5 |
| 2194 | const GX_F_KIND: i64 = 0 |
| 2195 | const GX_F_NAME: i64 = 1 |
| 2196 | const GX_F_BOARD: i64 = 2 |
| 2197 | const GX_F_SRC: i64 = 3 |
| 2198 | const GX_F_EV: i64 = 4 |
| 2199 | const GX_HUB: *u8 = "ecosystem" |
| 2200 | const GX_UNASSIGNED: *u8 = "UNASSIGNED" |
| 2412 | const SGP_FIELDS: i64 = 8 |
| 2413 | const SGP_PATH_CAP: i64 = 600 |
| 2414 | const SGP_I64_MAX: i64 = 9223372036854775807 |
| 2420 | const SGP_COLON: i64 = 58 // ':' -- the separator in a cross-board '<domain>:<rung>' ref |
| 2421 | const SGP_NOTE_WORDS: i64 = 5 // one record: rule, rung-id ptr, name ptr, name len, number |
| 2422 | const SGP_OFFENDER_MAX: i64 = 64 // offender rows RECORDED; offender_overflow carries the rest |
| 2423 | const SGP_EXTERNAL_MAX: i64 = 64 // cross-board refs RECORDED; external_overflow carries the rest |
| 2424 | const SGP_RULE_FIELDS: i64 = 1 // a rung row whose field count is not SGP_FIELDS |
| 2425 | const SGP_RULE_BADID: i64 = 2 // a rung id outside the id grammar |
| 2426 | const SGP_RULE_DUPID: i64 = 3 // a second declaration of one id |
| 2427 | const SGP_RULE_BADDEP: i64 = 4 // a dependency token outside the id grammar |
| 2428 | const SGP_RULE_MISSDEP: i64 = 5 // a dependency naming no rung on THIS plan |
| 2429 | const SGP_RULE_DUPEDGE: i64 = 6 // the same dependency declared twice on one rung |
| 2430 | const SGP_RULE_CYCLE: i64 = 7 // on a dependency cycle |
| 2431 | const SGP_RULE_CYCLEDOWN: i64 = 8 // not on a cycle, but blocked by one |
| 3035 | const EFS_DOC_BYTES: i64=40 |
| 3036 | const EFS_TOKEN_WORDS: i64=4 |
| 3037 | const EFS_KEY: i64=14 |
| 3283 | const CDP_CELL0: i64 = 4 // a matrix row is label|organ|symbol|exceed|cells...: the first rival cell |
| 3284 | const CDP_SYM: i64 = 2 // the row's symbol field (the plan join for the substrate mask) |
| 3285 | const CDP_PLAN_EXT: *u8 = ".plan" |
| 3286 | const CDP_SVG_W: i64 = 760 |
| 3287 | const CDP_SVG_H: i64 = 520 |
| 3288 | const CDP_PAD_L: i64 = 70 |
| 3289 | const CDP_PAD_R: i64 = 30 |
| 3290 | const CDP_PAD_T: i64 = 30 |
| 3291 | const CDP_PAD_B: i64 = 60 |
| 3292 | const CDP_R_MIN: i64 = 6 // bubble radius floor (px); radius = floor + isqrt(breadth points) |
| 3293 | const CDP_LABEL_DX: i64 = 10 |
| 3294 | const CDP_LABEL_DY: i64 = 4 |
| 3295 | const CDP_QLABEL_IN: i64 = 8 |
| 3296 | const CDP_QLABEL_UP: i64 = 16 |
| 3297 | const CDP_AXIS_DROP: i64 = 40 |
| 3298 | const CDP_AXIS_LEFT: i64 = 22 |
| 3299 | const CDP_TICK_DROP: i64 = 16 |
| 3300 | const CDP_LOG_SHOW: i64 = 14 // review-log days rendered (newest); earlier days are COUNTED |
| 3301 | const CDP_ISO_W: i64 = 760 |
| 3302 | const CDP_ISO_H: i64 = 560 |
| 3303 | const CDP_ISO_OX: i64 = 380 // the floor's near corner (0,0,0) sits here... |
| 3304 | const CDP_ISO_OY: i64 = 290 // ...so x runs right-down, y left-down, z straight up (raised 2026-09-15 for the 250 px unit) |
| 3305 | const CDP_ISO_UNIT: i64 = 250 // pixels per 1000 permil on every cube axis (220 left a third of the canvas empty) |
| 3306 | const CDP_ISO_LABEL_GAP: i64 = 14 |
| 3307 | const CDP_NISHI: *u8 = "Nishi" |
| 3308 | const CDP_CH_HASH: i64 = 35 // '#' cannot sit inside a string literal (lexer); written as a byte |
| 3309 | const CDP_CH_COMMA: i64 = 44 |
| 3310 | const CDP_CH_SPACE: i64 = 32 |
| 3311 | const CDP_CH_QUOTE: i64 = 39 |
| 3312 | const CDP_CH_COLON: i64 = 58 |
| 3313 | const CDP_CH_GT: i64 = 62 |
| 3314 | const CDP_CH_PLUS: i64 = 43 |
| 3315 | const CDP_CH_LBRACE: i64 = 123 |
| 3316 | const CDP_CH_RBRACE: i64 = 125 |
| 3317 | const CDP_CH_LBRACKET: i64 = 91 |
| 3318 | const CDP_CH_RBRACKET: i64 = 93 |
| 3319 | const CDP_DATE_CAP: i64 = 32 |
| 3320 | const CDP_XYZ: i64 = 3 |
| 3330 | const CDP_TWO: i64 = 2 |
| 3331 | const CDP_CH_RPAREN: i64 = 41 |
| 3332 | const CDP_FONT_LABEL: i64 = 13 |
| 3333 | const CDP_FONT_TICK: i64 = 11 |
| 3334 | const CDP_FONT_QUAD: i64 = 11 |
| 3335 | const CDP_QUAD_N: i64 = 4 // the four HBR quadrant words, seated by the placer AFTER every label and note (2026-09-15) |
| 3336 | const CDP_QUAD_W_PERMIL: i64 = 1300 // a quadrant word is uppercase with .12em tracking: its box is 1.3x the plain text width |
| 3337 | const CDP_QUAD_BASE: i64 = 10 // text baseline inside an 11 px quadrant-word box |
| 3338 | const CDP_CANVAS_IN: i64 = 2 // labels keep this many px inside the plot frame |
| 3339 | const CDP_TICK_TEXT_DY: i64 = 15 // x tick numerals sit this far under the frame |
| 3340 | const CDP_TICK_TEXT_DX: i64 = 6 // y tick numerals end this far left of the frame |
| 3341 | const CDP_TICK_BASE: i64 = 4 // a numeral's baseline offset so it centres on its gridline |
| 3342 | const CDP_MEAN_LABEL_DY: i64 = 12 |
| 3343 | const CDP_MEAN_LABEL_DX: i64 = 4 |
| 3344 | const CDP_LABEL_BASE: i64 = 12 // text baseline inside a 16 px label box at 13 px |
| 3345 | const CDP_STROKE_W: i64 = 2 |
| 3346 | const CDP_NOTES_CAP: i64 = 16 // notes a board may pin on one cut (datavis DV5); the parser counts the rest as refused |
| 3347 | const CDP_NOTE_CH: i64 = 26 // wrap width in characters at CDP_FONT_NOTE (a box about a quarter of the plot wide) |
| 3348 | const CDP_NOTE_LINES: i64 = 4 // a note is at most four lines; a longer one is refused by name, never truncated |
| 3349 | const CDP_FONT_NOTE: i64 = 11 |
| 3350 | const CDP_NOTE_PAD: i64 = 5 // px between a note box's edge and its text |
| 3351 | const CDP_NOTE_DOT_R: i64 = 3 // the anchor dot of a point-pinned note |
| 3352 | const CDP_NOTE_BASE: i64 = 9 // text baseline inside a note line at 11 px |
| 3353 | const CDP_NOTE_STROKE: *u8 = "stroke='var(--nx-color-mut)' stroke-dasharray='2 2'" |
| 3354 | const CDP_CH_SEMI: i64 = 59 |
| 3355 | const CDP_ISO_TICK_DX: i64 = 8 |
| 3356 | const CDP_ISO_TICK_DY: i64 = 14 |
| 3357 | const CDP_ISO_ZTICK_DX: i64 = 6 |
| 3358 | const CDP_ISO_ZTICK_DY: i64 = 4 |
| 3359 | const CDP_ISO_AXIS_GAP: i64 = 30 |
| 3360 | const CDP_SHADOW_R: i64 = 3 |
| 3361 | const CDP_LEG_SW: i64 = 12 |
| 3446 | const CDP_EXPORT_SVG: *u8 = "cdmap.svg" |
| 3447 | const CDP_EXPORT_PNG: *u8 = "cdmap.png" |
| 3448 | const CDP_EXPORT_RECEIPT: *u8 = "cdmap.export.json" |
| 3449 | const CDP_EXPORT_INDEX: *u8 = "index.html" |
| 3450 | const CDP_EXPORT_SCALE: i64 = 2 // the PNG is twice the viewBox: crisp on a 2x display, 1520 x 1040 for the standard map |
| 3451 | const CDP_EXPORT_OK: i64 = 0 |
| 3452 | const CDP_EXPORT_FAIL: i64 = 1 |
| 3453 | const CDP_EXPORT_ABSENT: i64 = 2 |
| 3454 | const CDP_EXPORT_PATH_CAP: i64 = 1024 |
| 3455 | const CDP_FONT_NAS: *u8 = "knowledge/fonts/LiberationSans-Regular.ttf" |
| 3456 | const CDP_FONT_NAS_BOLD: *u8 = "knowledge/fonts/LiberationSans-Bold.ttf" |
| 3457 | const CDP_FONT_UP: *u8 = "../knowledge/fonts/LiberationSans-Regular.ttf" // the regen runs the generators from buildroot |
| 3458 | const CDP_FONT_UP_BOLD: *u8 = "../knowledge/fonts/LiberationSans-Bold.ttf" |
| 3459 | const CDP_FONT_LAPTOP: *u8 = "web_assets/fonts/LiberationSans-Regular.ttf" |
| 3460 | const CDP_FONT_LAPTOP_BOLD: *u8 = "web_assets/fonts/LiberationSans-Bold.ttf" |
| 3461 | const CDP_CH_SLASH: i64 = 47 |
| 3539 | const CDP_CT_LABELS: i64 = 0 |
| 3540 | const CDP_CT_NOTES: i64 = 1 |
| 3541 | const CDP_CT_QUAD: i64 = 2 |
| 3542 | const CDP_CT_TICKS: i64 = 3 |
| 3543 | const CDP_CT_AXES: i64 = 4 |
| 3544 | const CDP_CT_REFUSED: i64 = 5 |
| 3545 | const CDP_CT_LOADED: i64 = 6 |
| 3546 | const CDP_CT_FLOOR_SMALL: i64 = 7 |
| 3547 | const CDP_CT_FLOOR_LARGE: i64 = 8 |
| 3548 | const CDP_CT_FLOOR_LABELS: i64 = 9 |
| 3549 | const CDP_CT_FLOOR_NOTES: i64 = 10 |
| 3550 | const CDP_CT_FLOOR_QUAD: i64 = 11 |
| 3551 | const CDP_CT_FLOOR_TICKS: i64 = 12 |
| 3552 | const CDP_CT_FLOOR_AXES: i64 = 13 |
| 3553 | const CDP_CT_TOKENS: i64 = 14 |
| 3555 | const CDP_CT_D_LABELS: i64 = 15 |
| 3556 | const CDP_CT_D_QUAD: i64 = 16 |
| 3557 | const CDP_CT_D_AXES: i64 = 17 |
| 3558 | const CDP_CT_D_UNDER: i64 = 18 |
| 3559 | const CDP_CT_D_TOKENS: i64 = 19 |
| 3560 | const CDP_CT_W: i64 = 20 |
| 3561 | const CDP_FONT_AXIS: i64 = 12 // the axis titles' font-size (cdp_text's literal) |
| 3562 | const CDP_CONTRAST_CONF: *u8 = "knowledge/compare/contrast.conf" // CWD buildroot (the regen) |
| 3563 | const CDP_CONTRAST_CONF_UP: *u8 = "buildroot/knowledge/compare/contrast.conf" // CWD nishihost (a probe) |
| 3564 | const CDP_CT_X100: i64 = 100 |
| 3718 | const CDP_SM_COLS: i64 = 3 |
| 3719 | const CDP_SM_CELL_W: i64 = 246 |
| 3720 | const CDP_SM_CELL_H: i64 = 190 |
| 3721 | const CDP_SM_PAD_L: i64 = 36 |
| 3722 | const CDP_SM_PAD_R: i64 = 10 |
| 3723 | const CDP_SM_PAD_T: i64 = 22 |
| 3724 | const CDP_SM_PAD_B: i64 = 26 |
| 3725 | const CDP_SM_R_MIN: i64 = 3 |
| 3726 | const CDP_SM_R_DIV: i64 = 2 |
| 3727 | const CDP_SM_FONT: i64 = 10 |
| 3728 | const CDP_SM_TITLE_DY: i64 = 14 |
| 3729 | const CDP_SM_TICK_DY: i64 = 12 |
| 3730 | const CDP_SM_TICK_DX: i64 = 4 |
| 3731 | const CDP_SM_TICK_BASE: i64 = 3 |
functions
| 28 | func w(fd: i64, s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(fd, s, n); return 0 } |
| 29 | func wc(fd: i64, code: i64) -> i64 { let t: *u8 = sys_mmap(2); t[0] = code as u8; sys_write(fd, t, 1); return 0 } called by 62: markdstate_REMOVED_SEE_LIBwescgal_attrgal_html_headinggal_json+56 calls 2: sys_mmapsys_write |
| 30 | func wn(fd: i64, v: i64) -> i64 called by 60: gal_text_previewgal_html_headingrank_pass_headingevb_pairevb_oneev_pass_heading+54 calls 3: wsys_mmapsys_write |
| 36 | func wj(fd: i64, s: *u8) -> i64 |
| 43 | func wq(fd: i64) -> i64 { wc(fd, 34); return 0 } |
| 44 | func kv_s(fd: i64, key: *u8, val: *u8) -> i64 { wq(fd); w(fd, key); wq(fd); wc(fd, 58); wq(fd); wj(fd, val); wq(fd); return 0 } |
| 45 | func kv_n(fd: i64, key: *u8, v: i64) -> i64 { wq(fd); w(fd, key); wq(fd); wc(fd, 58); wn(fd, v); return 0 } |
| 46 | func c_read(path: *u8, buf: *u8, cap: i64) -> i64 |
| 52 | func streq(a: *u8, b: *u8) -> i64 { var i: i64 = 0; while a[i] != (0 as u8) { if a[i] != b[i] { return 0 } i = i + 1 } if b[i] != (0 as u8) { return 0 } return 1 } |
| 53 | func starts(s: *u8, pfx: *u8) -> i64 { var i: i64 = 0; while pfx[i] != (0 as u8) { if s[i] != pfx[i] { return 0 } i = i + 1 } return 1 } |
| 54 | func scopy(dst: *u8, doff: i64, src: *u8) -> i64 { var i: i64 = 0; while src[i] != (0 as u8) { dst[doff+i] = src[i]; i = i + 1 } return doff + i } |
| 55 | func splitpipe(s: *u8, fld: *i64, maxf: i64) -> i64 |
| 60 | func wnote(fd: i64, s: *u8) -> i64 called by 23: plan_pass_PRELIFT_UNREACHABLErank_pass_headingmainswl_trt_cellplan_pass_headingwatch_pass+17 calls 2: wwc |
| 111 | func rv_code(s: *u8) -> i64 called by 1: rv_class |
| 119 | func rv_note_cited(note: *u8) -> i64 |
| 124 | func rv_class(note: *u8, rf: *i64, rr: i64, stride: i64, ncol: i64) -> i64 |
| 134 | func rv_grade_claims(g: *u8) -> i64 { if g[0] == (66 as u8) { return 1 } if g[0] == (89 as u8) { return 1 } if g[0] == (126 as u8) { return 1 } return 0 } called by 1: rv_class_grades |
| 135 | func rv_class_grades(note: *u8, rf: *i64, rr: i64, stride: i64, first: i64, count: i64) -> i64 |
| 143 | func rv_name(c: i64) -> *u8 |
| 149 | func rp_base(p: *u8) -> *u8 |
| 155 | func rp_publish(mir: *u8, dom: *u8) -> i64 |
| 199 | func rp_may_republish(cls: *u8) -> i64 |
| 218 | func rp_publish_gated(mir: *u8, dom: *u8, cls: *u8) -> i64 |
| 226 | func rp_json(fld: *i64, count: i64) -> i64 |
| 244 | func rp_html(fld: *i64, count: i64, dom: *u8, hdr: *u8) -> i64 |
| 262 | func refs_pass(path: *u8, bufz: *u8, capz: i64, mode: i64, dom: *u8, hdr: *u8) -> i64 called by 4: mainmainrank_guard_matrix_mainmain calls 11: sys_openat_rdsys_lseeksys_closesys_mmapc_readsplitpipe+5 |
| 320 | func dstate(fd: i64, id: *u8, ds: *u8, dn: i64) -> i64 |
| 363 | func wlow(fd: i64, s: *u8) -> i64 |
| 388 | func swl_bar_state(fd: i64, buf: *u8, bidoff: *i64, bidlen: *i64, bym: *i64, bst: *i64, nb: i64, id: *u8) -> i64 |
| 407 | func swl_rung_deps(fd: i64, buf: *u8, ridoff: *i64, ridlen: *i64, rdoff: *i64, rdlen: *i64, nr: i64, id: *u8) -> i64 |
| 421 | func swl_release_epoch(s: *u8) -> i64 called by 1: swl_release_candidate |
| 438 | func swl_release_candidate(epoch: *u8, kind: *u8, entry: *u8, current: i64, now: i64) -> i64 |
| 452 | func sc_heading_level(level: i64) -> i64 { if level<1 { return 2 }; if level>6 { return 2 }; return level } |
| 453 | func sc_heading_open(fd: i64, level: i64, attrs: *u8) -> i64 called by 23: gal_html_headingrank_pass_headingev_pass_headingmainplan_pass_headingppp_pass_heading+17 calls 3: wwnsc_heading_level |
| 456 | func sc_heading_close(fd: i64, level: i64) -> i64 called by 23: gal_html_headingrank_pass_headingev_pass_headingmainplan_pass_headingppp_pass_heading+17 calls 3: wwnsc_heading_level |
| 461 | func sc_plan_table_open(fd: i64, label: *u8) -> i64 |
| 464 | func sc_plan_table_close(fd: i64) -> i64 { w(fd, "</tbody></table></div>" as *u8); return 0 } |
| 466 | func plan_pass(path: *u8, bufz: *u8, capz: i64, phase: i64) -> i64 { return plan_pass_heading(path, bufz, capz, phase, 2) } |
| 468 | func sc_plan_row_table(phase: i64, kind: *u8, fields: i64) -> i64 |
| 515 | func swl_trt_read(rel: *u8, outb: *i64) -> i64 |
| 530 | func swl_trt_allow_read(outb: *i64) -> i64 |
| 539 | func swl_trt_span(buf: *u8, off: i64, len: i64) -> *u8 |
| 549 | func swl_treat_judge(buf: *u8, tab: *i64, rows: i64, ev: *i64) -> i64 called by 1: plan_pass_heading calls 9: sys_mmapswl_trt_allow_readswl_trt_readep_artifact_pathtr_run_captureep_src_path+3 |
| 601 | func swl_trt_cell(fd: i64, buf: *u8, off: i64, len: i64, st: i64) -> i64 |
| 608 | func plan_pass_heading(path: *u8, bufz: *u8, capz: i64, phase: i64, heading_level: i64) -> i64 called by 4: mainplan_passmainrank_guard_matrix_main calls 45: sys_openat_rdsys_lseeksys_closesys_mmapc_readscopy+39 |
| 893 | func wp_status_text(st: i64) -> *u8 called by 1: watch_pass |
| 900 | func wp_status_class(st: i64) -> *u8 called by 1: watch_pass |
| 907 | func wp_classify(organ: *u8, sym: *u8, rule_out: *i64) -> i64 |
| 917 | func watch_pass(mpath: *u8, fd: i64, mode: i64) -> i64 |
| 1018 | func pl_jint(buf: *u8, n: i64, from: i64, key: *u8) -> i64 called by 1: ppp_pass_heading |
| 1044 | func pl_off(buf: *u8, n: i64, name: *u8) -> i64 called by 1: ppp_pass_heading |
| 1057 | func pl_cell(fd: i64, v: i64) -> i64 |
| 1063 | func ppp_pass(dom: *u8, fd: i64, mode: i64) -> i64 { return ppp_pass_heading(dom, fd, mode, 2) } |
| 1064 | func ppp_pass_heading(dom: *u8, fd: i64, mode: i64, heading_level: i64) -> i64 called by 4: mainppp_passmainrank_guard_matrix_main calls 15: sys_mmapscopysys_read_filewsc_heading_opensc_heading_close+9 |
| 1267 | func sc_brand() -> *u8 |
| 1274 | func sc_dark_open() -> *u8 { return "@media(prefers-color-scheme:dark){:root{\n" as *u8 } called by 1: sc_theme_pass |
| 1275 | func sc_dark_close() -> *u8 { return "}}\n" as *u8 } called by 1: sc_theme_pass |
| 1277 | func sc_theme_pass(fd: i64) -> i64 |
| 1353 | func sc_light_open() -> *u8 { return ":root{\n" as *u8 } called by 1: sc_print_css |
| 1354 | func sc_light_close() -> *u8 { return "}\n" as *u8 } called by 1: sc_print_css |
| 1359 | func sc_feed_link(fd: i64) -> i64 { w(fd, SC_FEED_LINK_TAG); return 0 } |
| 1361 | func sc_print_css(fd: i64) -> i64 |
| 1437 | func sc_production_open(fd: i64, id: *u8, title: *u8, purpose: *u8) -> i64 |
| 1441 | func sc_production_close(fd: i64) -> i64 { w(fd, "</div></section>\n" as *u8); return 0 } |
| 1443 | func sc_layout_pass(fd: i64) -> i64 |
| 1543 | func evj_class(fired: i64, name: *u8, n: *i64) -> i64 |
| 1551 | func evj_pass(dom: *u8) -> i64 |
| 1696 | func bd_ymd(epoch: i64, dst: *u8, off: i64) -> i64 |
| 1719 | func bd_sha_short(fd: i64, s: *u8) -> i64 |
| 1724 | func bd_status_class(st: i64) -> *u8 |
| 1771 | func pr_name_read(dir: *u8, appid: *u8, out: *u8, cap: i64) -> i64 |
| 1783 | func pr_name_lookup(appid: *u8, out: *u8, cap: i64) -> i64 |
| 1788 | func prop_pass(dom: *u8, fd: i64, mode: i64) -> i64 { return prop_pass_heading(dom, fd, mode, 2) } |
| 1789 | func prop_pass_heading(dom: *u8, fd: i64, mode: i64, heading_level: i64) -> i64 |
| 1906 | func fi_lc(c: i64) -> i64 { if c >= FI_UPPER_A { if c <= FI_UPPER_Z { return c + FI_CASE_DELTA } } return c } |
| 1908 | func fi_ci_contains(hay: *u8, needle: *u8) -> i64 |
| 1925 | func fi_head_word(col: *u8, out: *u8, cap: i64) -> i64 |
| 1933 | func field_pass(dom: *u8, fd: i64, mode: i64, colv: *i64, ncols_in: i64) -> i64 { return field_pass_heading(dom, fd, mode, colv, ncols_in, 2) } called by 4: mainfield_passmainrank_guard_matrix_main calls 19: sys_mmapscopyc_readstartssplitpipestreq+13 |
| 1934 | func field_pass_heading(dom: *u8, fd: i64, mode: i64, colv: *i64, ncols_in: i64, heading_level: i64) -> i64 |
| 2078 | func gauge_pass(dom: *u8, fd: i64, mode: i64) -> i64 { return gauge_pass_heading(dom, fd, mode, 2) } called by 4: maingauge_passmainrank_guard_matrix_main calls 21: sys_mmapscopyc_readsys_now_realtime_secwcwq+15 |
| 2079 | func gauge_pass_heading(dom: *u8, fd: i64, mode: i64, heading_level: i64) -> i64 |
| 2201 | func gaps_pass(dom: *u8, fd: i64, mode: i64) -> i64 { return gaps_pass_heading(dom, fd, mode, 2) } called by 4: maingaps_passmainrank_guard_matrix_main calls 18: sys_mmapep_artifact_pathc_readsys_now_realtime_secscopyga_judge+12 |
| 2202 | func gaps_pass_heading(dom: *u8, fd: i64, mode: i64, heading_level: i64) -> i64 |
| 2301 | func bench_pass(dom: *u8, fd: i64, mode: i64) -> i64 { return bench_pass_heading(dom, fd, mode, 2) } called by 4: mainbench_passmainrank_guard_matrix_main calls 19: sys_mmapscopybr_loadbr_verdictbd_ymdwc+13 |
| 2302 | func bench_pass_heading(dom: *u8, fd: i64, mode: i64, heading_level: i64) -> i64 |
| 2469 | func sg_len(s: *u8) -> i64 { var i: i64 = 0; while s[i] != (0 as u8) { i = i + 1 } return i } |
| 2470 | func sg_id(s: *u8, n: i64) -> i64 |
| 2485 | func sg_split(s: *u8, f: *i64, capacity: i64, delimiter: i64) -> i64 |
| 2493 | func sg_decimal(s: *u8) -> i64 |
| 2503 | func sg_sha(b: *u8, n: i64) -> *u8 |
| 2512 | func sg_find(m: *SgPlan, name: *u8, length: i64) -> i64 |
| 2525 | func sg_prefix_decimal(s: *u8, key: *u8) -> i64 |
| 2529 | func sg_rank(m: *SgPlan, raw: *u8, n: i64) -> i64 |
| 2590 | func sg_colon(s: *u8, n: i64) -> i64 |
| 2595 | func sg_rule_name(rule: i64) -> *u8 |
| 2607 | func sg_note(list: *i64, count: i64, capacity: i64, rule: i64, rung: *u8, name: *u8, length: i64, number: i64) -> i64 |
| 2614 | func sg_offend(m: *SgPlan, rule: i64, rung: *u8, name: *u8, length: i64, number: i64) -> i64 |
| 2619 | func sg_extern(m: *SgPlan, rung: *u8, name: *u8, length: i64) -> i64 |
| 2626 | func sg_graph_text(m: *SgPlan, fd: i64) -> i64 |
| 2666 | func sg_parse(raw: *u8, n: i64, rank: *u8, rn: i64, matrix: *u8, mn: i64) -> *SgPlan |
| 2823 | func sg_valid(m: *SgPlan) -> i64 |
| 2828 | func sg_rank_state(m: *SgPlan) -> *u8 |
| 2837 | func sg_load(domain: *u8) -> *SgPlan |
| 2861 | func sg_growth_json(g: *CgModel,fd: i64) -> i64 |
| 2877 | func sg_growth_text(g: *CgModel,row: i64,col: i64,fd: i64) -> i64 |
| 2885 | func sg_growth_detail(g: *CgModel,row: i64,col: i64,label: *u8,fd: i64) -> i64 |
| 2888 | func sg_growth_html(g: *CgModel,fd: i64,heading: i64) -> i64 |
| 2939 | func sg_json(m: *SgPlan, fd: i64) -> i64 |
| 2977 | func sg_text(fd: i64, s: *u8) -> i64 |
| 2988 | func sg_html(m: *SgPlan, fd: i64) -> i64 { return sg_html_heading(m, fd, 2) } called by 4: mainsg_htmlmainrank_guard_matrix_main calls 8: wsc_heading_opensc_heading_closewnsg_rank_statesg_valid+2 |
| 2989 | func sg_html_heading(m: *SgPlan, fd: i64, heading_level: i64) -> i64 |
| 3024 | func sg_css(fd: i64) -> i64 |
| 3038 | func efs_free(d: *EfsDoc) -> i64 |
| 3043 | func efs_parse(src: *u8,n: i64) -> *EfsDoc |
| 3102 | func efs_equal(d: *EfsDoc,idx: i64,s: *u8) -> i64 |
| 3111 | func efs_get(d: *EfsDoc,parent: i64,key: *u8) -> i64 |
| 3120 | func efs_kind(d: *EfsDoc,i: i64) -> i64 { if i<0 || i>=d.count { return 0 };return d.tokens[i*EFS_TOKEN_WORDS] } |
| 3121 | func efs_int(d: *EfsDoc,i: i64) -> i64 |
| 3129 | func efs_number(d: *EfsDoc,parent: i64,key: *u8) -> i64 { return efs_int(d,efs_get(d,parent,key)) } |
| 3130 | func efs_string(d: *EfsDoc,i: i64) -> *u8 |
| 3136 | func efs_print_string(d: *EfsDoc,i: i64,fd: i64) -> i64 |
| 3141 | func efs_validate(d: *EfsDoc) -> i64 |
| 3190 | func efs_metric(d: *EfsDoc,summary: i64,key: *u8,label: *u8,meaning: *u8,fd: i64) -> i64 |
| 3195 | func efs_html(d: *EfsDoc,fd: i64,heading: i64,path: *u8,hash: *u8) -> i64 |
| 3234 | func efs_capture(path: *u8,expected: *u8,r: *NxFileReadRegion) -> *u8 |
| 3261 | func efs_render(path: *u8,expected: *u8,heading: i64,fd: i64) -> i64 |
| 3321 | func cdp_x(v: i64, dom: *i64) -> i64 { return cl_scale_dom(v, dom, CDP_PAD_L, CDP_SVG_W - CDP_PAD_R) } calls 1: cl_scale_dom |
| 3322 | func cdp_y(v: i64, dom: *i64) -> i64 { return cl_scale_dom(v, dom, CDP_SVG_H - CDP_PAD_B, CDP_PAD_T) } |
| 3323 | func cdp_an(fd: i64, name: *u8, v: i64) -> i64 { wc(fd, CDP_CH_SPACE); w(fd, name); w(fd, "='" as *u8); wn(fd, v); wc(fd, CDP_CH_QUOTE); return 0 } called by 1: cdp_mark |
| 3324 | func cdp_mom_stroke(known: i64, mom: i64) -> *u8 |
| 3363 | func cdp_dom3(domc: *i64, k: i64) -> *i64 { return (domc as i64 + k * CL_DOM_W * CD_I64_BYTES) as *i64 } |
| 3364 | func cdp_fit3(sfit: *i64, p: i64) -> *i64 { return (sfit as i64 + p * CDP_XYZ * CD_I64_BYTES) as *i64 } |
| 3365 | func cdp_iso_fit(xyz: *i64, domc: *i64, s: *i64) -> i64 { var k: i64 = 0; while k < CDP_XYZ { s[k] = cl_scale_dom(xyz[k], cdp_dom3(domc, k), 0, CD_PERMIL); k = k + 1 } return 0 } |
| 3366 | func cdp_fig_open(fd: i64, cls: *u8, wd: i64, ht: i64, title: *u8, desc: *u8) -> i64 |
| 3371 | func cdp_tick_text(fd: i64, x: i64, y: i64, extra: *u8, v: i64) -> i64 { w(fd, "<text" as *u8); cdp_an(fd, "x" as *u8, x); cdp_an(fd, "y" as *u8, y); w(fd, " fill='var(--nx-color-mut)' font-size='" as *u8); wn(fd, CDP_FONT_TICK); wc(fd, CDP_CH_QUOTE); w(fd, extra); wc(fd, CDP_CH_GT); wn(fd, v); w(fd, "</text>\n" as *u8); return 0 } |
| 3372 | func cdp_mean_text(fd: i64, x: i64, y: i64, extra: *u8, v: i64) -> i64 { w(fd, "<text" as *u8); cdp_an(fd, "x" as *u8, x); cdp_an(fd, "y" as *u8, y); w(fd, " fill='var(--nx-color-mut)' font-size='" as *u8); wn(fd, CDP_FONT_TICK); wc(fd, CDP_CH_QUOTE); w(fd, extra); w(fd, ">mean " as *u8); wn(fd, v); w(fd, "</text>\n" as *u8); return 0 } |
| 3378 | func cdp_quad_word(i: i64) -> *u8 |
| 3386 | func cdp_quad_at(fd: i64, x: i64, ybase: i64, s: *u8) -> i64 { if g_cdp_ct_refuse_quad == 1 { return 0 } w(fd, "<text" as *u8); cdp_an(fd, "x" as *u8, x); cdp_an(fd, "y" as *u8, ybase); w(fd, " fill='var(--nx-color-mut)' font-size='" as *u8); wn(fd, CDP_FONT_QUAD); w(fd, "' style='letter-spacing:.12em;text-transform:uppercase'>" as *u8); wnote(fd, s); w(fd, "</text>\n" as *u8); return 0 } |
| 3387 | func cdp_mark(fd: i64, x: i64, y: i64, r: i64, p: i64, known: i64, mom: i64) -> i64 { w(fd, "<circle" as *u8); cdp_an(fd, "cx" as *u8, x); cdp_an(fd, "cy" as *u8, y); cdp_an(fd, "r" as *u8, r); cdp_an(fd, "data-p" as *u8, p); w(fd, " fill='" as *u8); w(fd, cl_palette(p)); w(fd, "' fill-opacity='0.82' stroke='" as *u8); w(fd, cdp_mom_stroke(known, mom)); w(fd, "' stroke-width='" as *u8); wn(fd, CDP_STROKE_W); w(fd, "'>" as *u8); return 0 } |
| 3388 | func cdp_leader(fd: i64, mx: i64, my: i64, lx: i64, ly: i64, lw: i64, lh: i64) -> i64 { if g_cdp_ct_refuse_labels == 1 { return 0 } var tx: i64 = lx; if lx + lw < mx { tx = lx + lw } cdp_line(fd, mx, my, tx, ly + lh / CDP_TWO, "stroke='var(--nx-color-mut)'" as *u8); return 0 } |
| 3389 | func cdp_label(fd: i64, x: i64, y: i64, bold: i64, s: *u8, p: i64) -> i64 |
| 3398 | func cdp_wnote_n(fd: i64, s: *u8, n: i64) -> i64 { let t: *u8 = sys_mmap(n + 1); var i: i64 = 0; while i < n { t[i] = s[i]; i = i + 1 } t[n] = 0 as u8; return wnote(fd, t) } |
| 3399 | func cdp_wj_n(fd: i64, s: *u8, n: i64) -> i64 { let t: *u8 = sys_mmap(n + 1); var i: i64 = 0; while i < n { t[i] = s[i]; i = i + 1 } t[n] = 0 as u8; return wj(fd, t) } |
| 3402 | func cdp_annotate(fd: i64, x: i64, y: i64, wd: i64, ht: i64, buf: *u8, rcn: *i64, loff: *i64, llen: *i64, nlines: i64) -> i64 |
| 3425 | func cdp_interact(fd: i64, domx: *i64, domy: *i64) -> i64 |
| 3462 | func cdp_font_probe(nas: *u8, up: *u8, laptop: *u8) -> *u8 |
| 3469 | func cdp_export_path(dst: *u8, dir: *u8, leaf: *u8) -> i64 |
| 3476 | func cdp_export_kv(fd: i64, key: *u8, v: i64) -> i64 { kv_n(fd, key, v); wc(fd, CDP_CH_COMMA); return 0 } |
| 3477 | func cdp_export(dir: *u8) -> i64 |
| 3525 | func cdp_note_anchor(fd: i64, rcn: *i64, names: *i64) -> i64 |
| 3530 | func cdp_swatch(fd: i64, p: i64) -> i64 { w(fd, "<span style='display:inline-block;width:" as *u8); wn(fd, CDP_LEG_SW); w(fd, "px;height:" as *u8); wn(fd, CDP_LEG_SW); w(fd, "px;border-radius:50%;background:" as *u8); w(fd, cl_palette(p)); w(fd, ";margin:0 5px 0 10px;vertical-align:-1px' aria-hidden='true'></span>" as *u8); return 0 } |
| 3565 | func cdp_contrast(out: *i64) -> i64 |
| 3637 | func cdp_x100(fd: i64, v: i64) -> i64 { wn(fd, v / CDP_CT_X100); w(fd, "." as *u8); let f: i64 = v % CDP_CT_X100; if f < CDP_CT_X100 / 10 { wn(fd, 0) } wn(fd, f); return 0 } |
| 3638 | func cdp_ct_pair(fd: i64, name: *u8, v: i64, floor: i64) -> i64 { w(fd, name); w(fd, " <b>" as *u8); cdp_x100(fd, v); w(fd, "</b> (floor " as *u8); cdp_x100(fd, floor); w(fd, ")" as *u8); return 0 } |
| 3639 | func cdp_contrast_html(fd: i64, ct: *i64) -> i64 |
| 3656 | func cdp_contrast_json(fd: i64, ct: *i64) -> i64 |
| 3675 | func cdp_grade(fd: i64, view: *u8, crit: *i64, unresolved: i64) -> i64 |
| 3680 | func cdp_grade_json(fd: i64, key: *u8, crit: *i64, unresolved: i64) -> i64 |
| 3687 | func cdp_dom_json(fd: i64, key: *u8, dom: *i64) -> i64 { wq(fd); w(fd, key); wq(fd); wc(fd, CDP_CH_COLON); wc(fd, CDP_CH_LBRACKET); wn(fd, dom[CL_D_LO]); wc(fd, CDP_CH_COMMA); wn(fd, dom[CL_D_HI]); wc(fd, CDP_CH_COMMA); wn(fd, dom[CL_D_STEP]); wc(fd, CDP_CH_RBRACKET); return 0 } |
| 3688 | func cdp_day_label(fd: i64, day: i64) -> i64 { let b: *u8 = sys_mmap(CDP_DATE_CAP); let o: i64 = bd_ymd(day * CD_SECS_PER_DAY, b, 0); sys_write(fd, b, o); return 0 } |
| 3689 | func cdp_text(fd: i64, x: i64, y: i64, extra: *u8, s: *u8) -> i64 { w(fd, "<text" as *u8); cdp_an(fd, "x" as *u8, x); cdp_an(fd, "y" as *u8, y); w(fd, " fill='currentColor' font-size='12'" as *u8); w(fd, extra); wc(fd, CDP_CH_GT); wnote(fd, s); w(fd, "</text>\n" as *u8); return 0 } |
| 3690 | func cdp_hist(hist: *i64, p: i64) -> *i64 { return (hist as i64 + p * CD_HIST_W * CD_I64_BYTES) as *i64 } |
| 3692 | func cdp_trail(trail: *i64, tcap: i64, p: i64) -> *i64 { return (trail as i64 + p * tcap * CD_HIST_W * CD_I64_BYTES) as *i64 } |
| 3693 | func cdp_line(fd: i64, x1: i64, y1: i64, x2: i64, y2: i64, style: *u8) -> i64 { w(fd, "<line" as *u8); cdp_an(fd, "x1" as *u8, x1); cdp_an(fd, "y1" as *u8, y1); cdp_an(fd, "x2" as *u8, x2); cdp_an(fd, "y2" as *u8, y2); wc(fd, CDP_CH_SPACE); w(fd, style); w(fd, "/>\n" as *u8); return 0 } |
| 3694 | func cdp_pt(fd: i64, x: i64, y: i64) -> i64 { wn(fd, x); wc(fd, CDP_CH_COMMA); wn(fd, y); return 0 } |
| 3696 | func cdp_cube_xyz(out: *i64, p: i64, nr: i64, h: *i64, cube: *i64, which: i64, xyz: *i64) -> i64 |
| 3704 | func cdp_iso_px(xyz: *i64) -> i64 { return cd_iso_x(CDP_ISO_OX, xyz[0], xyz[1], CDP_ISO_UNIT) } |
| 3705 | func cdp_iso_py(xyz: *i64) -> i64 { return cd_iso_y(CDP_ISO_OY, xyz[0], xyz[1], xyz[2], CDP_ISO_UNIT) } |
| 3706 | func cdp_iso_floor_py(xyz: *i64) -> i64 { return cd_iso_y(CDP_ISO_OY, xyz[0], xyz[1], 0, CDP_ISO_UNIT) } |
| 3707 | func cdp_iso_at(fd: i64, x: i64, y: i64, z: i64) -> i64 { cdp_pt(fd, cd_iso_x(CDP_ISO_OX, x, y, CDP_ISO_UNIT), cd_iso_y(CDP_ISO_OY, x, y, z, CDP_ISO_UNIT)); return 0 } |
| 3708 | func cdp_names(fd: i64, ids: *i64, n: i64) -> i64 { var k: i64 = 0; while k < n { if k > 0 { w(fd, ", " as *u8) } w(fd, cd_axis_name(ids[k])); k = k + 1 } return 0 } |
| 3709 | func cdp_names_json(fd: i64, ids: *i64, n: i64) -> i64 { wc(fd, CDP_CH_LBRACKET); var k: i64 = 0; while k < n { if k > 0 { wc(fd, CDP_CH_COMMA) } wq(fd); w(fd, cd_axis_name(ids[k])); wq(fd); k = k + 1 } wc(fd, CDP_CH_RBRACKET); return 0 } |