8000 Read the property values of LvProp by their types in one place each, without errors that cannot happen by dominion525 · Pull Request #137 · dominion525/jetdb · GitHub
[go: up one dir, main page]

Skip to content

Read the property values of LvProp by their types in one place each, without errors that cannot happen - #137

Merged
dominion525 merged 1 commit into
mainfrom
refactor/properties
Oct 26, 2026
Merged

dominion525 merged 1 commit into
mainfrom
refactor/properties

Conversation

@dominion525
Copy link
Copy Markdown
Owner

Summary

  • decode_prop_value had an arm for each fixed-size number type, each checking the length and reading the bytes in the same way, and the same arm for Text and for Memo. The numbers are now read with le_bytes and number_value, a line for each type, and Text and Memo values, and a GUID or binary, with a function each.
  • parse_lvprop, parse_value_chunk and parse_name_list converted slices of exactly 2 or 4 bytes into arrays with an error for a conversion that cannot fail. They read the numbers with u16_at and u32_at, and parse_value_chunk, which has no other error, gives its map without a Result.
  • parse_value_chunk reads the name of its block and each property entry, and read_properties finds the LvProp of the object, in functions of their own.
  • The values read are unchanged, and a value too short for its type is Null as before.
  • Functions above the thresholds: 68 → 64. Tests: 1115, as before. prop.rs is 77 lines shorter.
Function Before (CC / Cog / SLOC) After, the function of the largest CC
decode_prop_value 32 / 49 / 125 9 / 1 / 15
parse_value_chunk 21 / 11 / 102 7 / 3 / 39
parse_lvprop 14 / 6 / 55 9 / 6 / 45
read_properties 14 / 4 / 42 9 / 1 / 33

🤖 Generated with Claude Code

…without errors that cannot happen

- Read the numbers of the fixed-size types with le_bytes and number_value, a line for each type, and the Text and Memo values, and a GUID or binary, with a function each
- Read the 2- and 4-byte numbers of LvProp with u16_at and u32_at, rather than convert slices of the exact length with errors that cannot happen, so parse_value_chunk gives its map without a Result
- Read the name of a block and each property entry of a value chunk, and find the LvProp of the object, 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 9ccb313.

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                 1375                18    98.69%          90                 0   100.00%         695                10    98.56%           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                            37127              1237    96.67%        2627                77    97.07%       21238               602    97.17%           0                 0         -

@dominion525
dominion525 merged commit 389e2f1 into main Oct 26, 2026
11 checks passed
@dominion525
dominion525 deleted the refactor/properties branch October 26, 2026 04:19
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