8000 Read macro grids and their statements with types of their own, and split the readers of macros into their steps by dominion525 · Pull Request #136 · dominion525/jetdb · GitHub
[go: up one dir, main page]

Skip to content

Read macro grids and their statements with types of their own, and split the readers of macros into their steps - #136

Merged
dominion525 merged 3 commits into
mainfrom
refactor/macros
Oct 26, 2026
Merged

dominion525 merged 3 commits into
mainfrom
refactor/macros

Conversation

@dominion525
Copy link
Copy Markdown
Owner

Summary

  • A macro grid is read with GridBytes, whose methods read the header, a row and the strings of a row, and the statements of a grid are built with GridStatements, which keeps the submacro and the condition open.
  • read_macro_in, read_embedded_macros_in and data_macros_from_xml read a macro of Access 97, a macro of a Blob, the grids of a Blob and its BlobDelta, an embedded macro, and a data macro and its parameters in functions of their own. find_macro_blob and scripts_dir_mapping walk the Scripts folder with the functions of the storage, and msysobjects_rows finds its columns with table::column_index.
  • to_data_block tells a data block by its shape and reads its Data in functions of their own; parse_xml_tree adds the text of its events in one function and makes each element in one way.
  • In macro_text.rs, data_macros_to_text orders the data macros and adds each element without its namespace in functions of their own, and push_row finds the name of the action and the arguments it writes in functions of their own.
  • The first commit tests the eight shapes to_data_block leaves to Unknown, and passes before and after. A test of an embedded macro without XML, whose statements are read from its grid, covers a path no test took.
  • What the functions give is unchanged.
  • Functions above the thresholds: 78 → 68. Tests: 1113 → 1115. parse_xml_tree is still above them (CC 15), as the match over the kinds of XML events.
Function Before (CC / Cog / SLOC) After, the function of the largest CC
macro_def parse_macro_grid 33 / 9 / 73 9 / 0 / 14
macro_def statements_from_grid 12 / 12 / 34 5 / 2 / 11
macro_def read_macro_in 13 / 2 / 50 9 / 1 / 26
macro_def msysobjects_rows 13 / 3 / 30 8 / 0 / 15
macro_def parse_xml_tree 21 / 13 / 71 15 / 1 / 48

The other functions that were above the thresholds (to_data_block, read_embedded_macros_in, find_macro_blob, data_macros_from_xml, data_macros_to_text, push_row) are below them now.

🤖 Generated with Claude Code

dominion525 and others added 3 commits October 26, 2026 11:56
- Test the eight shapes to_data_block leaves to Unknown: attributes, text, no Statements, another child, and a Data with attributes, text, or children that are not plain text

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…lit the readers of macros into their steps

- Read a grid with GridBytes and build the statements of its rows with GridStatements
- Read a macro of Access 97, a macro of a Blob and an embedded macro, and the data macros and their parameters, in functions of their own, and test an embedded macro without XML
- Find the Blob of a macro with the functions of the storage, and the columns of MSysObjects with column_index
- Tell a data block by its shape and read its Data in functions of their own
- Add the text of the XML events in one function, and make each element in one way

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Order the data macros and add each of their elements without its namespace in functions of their own
- Find the name of an action and the arguments a row writes in functions of their own

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

Coverage

For 828e0ae.

Filename                       Regions    Missed Regions     Cover   Functions  Missed Functions  Executed       Lines      Missed Lines     Cover    Branches   Missed Branches     Cover
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
jetdb-cli/src/export.rs            108                11    89.81%           5                 0   100.00%          66                 6    90.91%           0                 0         -
jetdb-cli/src/form.rs              254                24    90.55%          19                 5    73.68%         152                 9    94.08%           0                 0         -
jetdb-cli/src/macro_cmd.rs         151                11    92.72%          11                 2    81.82%          81                 5    93.83%           0                 0         -
jetdb-cli/src/main.rs              864                38    95.60%          70                 2    97.14%         549                25    95.45%           0                 0         -
jetdb-cli/src/prop.rs              308                15    95.13%          33                 2    93.94%         186                10    94.62%           0                 0         -
jetdb-cli/src/query.rs              80                 4    95.00%           5                 0   100.00%          51                 1    98.04%           0                 0         -
jetdb-cli/src/vba.rs                74                 4    94.59%           5                 0   100.00%          47                 1    97.87%           0                 0         -
jetdb-wasm/src/lib.rs             3871                95    97.55%         252                 4    98.41%        2031                22    98.92%           0                 0         -
jetdb/src/catalog.rs               509                14    97.25%          46                 0   100.00%         299                 3    99.00%           0                 0         -
jetdb/src/complex.rs               924                32    96.54%          73                 0   100.00%         605                15    97.52%           0                 0         -
jetdb/src/crypto.rs               2300               112    95.13%         127                10    92.13%        1315                60    95.44%           0                 0         -
jetdb/src/csv.rs                   857                24    97.20%          72                 0   100.00%         486                 6    98.77%           0                 0         -
jetdb/src/data.rs                 4560               179    96.07%         257                 3    98.83%        2564               110    95.71%           0                 0         -
jetdb/src/ddl/access.rs             70                 0   100.00%           7                 0   100.00%          46                 0   100.00%           0                 0         -
jetdb/src/ddl/mod.rs              2777                 8    99.71%         199                 2    98.99%        1503                 6    99.60%           0                 0         -
jetdb/src/ddl/mysql.rs              70                 0   100.00%           7                 0   100.00%          46                 0   100.00%           0                 0         -
jetdb/src/ddl/postgres.rs           71                 0   100.00%           7                 0   100.00%          46                 0   100.00%           0                 0         -
jetdb/src/ddl/sqlite.rs             69                 0   100.00%           7                 0   100.00%          48                 0   100.00%           0                 0         -
jetdb/src/encoding.rs              284                 0   100.00%          30                 0   100.00%         153                 0   100.00%           0                 0         -
jetdb/src/file.rs                 1915                65    96.61%         117                 0   100.00%         983                18    98.17%           0                 0         -
jetdb/src/form.rs                 3123               128    95.90%         230                10    95.65%        1684                48    97.15%           0                 0         -
jetdb/src/form2000.rs              762                21    97.24%          56                 1    98.21%         402                 4    99.00%           0                 0         -
jetdb/src/format.rs                616                 2    99.68%          45                 0   100.00%         388                 2    99.48%           0                 0         -
jetdb/src/lib.rs                     3                 0   100.00%           1                 0   100.00%           3                 0   100.00%           0                 0         -
jetdb/src/macro_action.rs          299                19    93.65%          27                 3    88.89%         165                24    85.45%           0                 0         -
jetdb/src/macro_def.rs            2440                88    96.39%         196                 9    95.41%        1596                36    97.74%           0                 0         -
jetdb/src/macro_text.rs            804                24    97.01%          54                 2    96.30%         451                20    95.57%           0                 0         -
jetdb/src/map.rs                   416                13    96.88%          27                 0   100.00%         221                 5    97.74%           0                 0         -
jetdb/src/money.rs                 281                 0   100.00%          26                 0   100.00%         186                 0   100.00%           0                 0         -
jetdb/src/prop.rs                 1398                56    95.99%          88                 8    90.91%         735                63    91.43%           0                 0         -
jetdb/src/query.rs                2587                71    97.26%         188                 1    99.47%        1625                35    97.85%           0                 0         -
jetdb/src/relationship.rs          249                26    89.56%          22                 0   100.00%         177                10    94.35%           0                 0         -
jetdb/src/save_as_text.rs          574                27    95.30%          52                 3    94.23%         341                27    92.08%           0                 0         -
jetdb/src/storage.rs               764                32    95.81%          57                 0   100.00%         434                 6    98.62%           0                 0         -
jetdb/src/table.rs                1679                67    96.01%         109                 2    98.17%        1017                18    98.23%           0                 0         -
jetdb/src/timestamp.rs             405                 0   100.00%          44                 0   100.00%         235                 0   100.00%           0                 0         -
jetdb/src/vba.rs                   634                65    89.75%          54                16    70.37%         361                60    83.38%           0                 0         -
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TOTAL                            37150              1275    96.57%        2625                85    96.76%       21278               655    96.92%           0                 0         -

@dominion525
dominion525 merged commit 44131bb into main Oct 26, 2026
11 checks passed
@dominion525
dominion525 deleted the refactor/macros branch October 26, 2026 03:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0