-
Notifications
You must be signed in to change notification settings - Fork 4
feat(decode): runtime support for structures #769
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
e6e3c0f
feat(decode): runtime decoding for one element structure.
Stevengre 182c156
feat(test): add UnableToDecode test for structure with multiple elements
Stevengre ce4d94d
feat(decode): runtime decoding for multi-field structure
Stevengre 1f7e48b
feat: format json file automatically after generating smir.json
Stevengre c5b71e5
feat: udpate test file to track the unsorted offset field structin sm…
Stevengre 01963ed
fix: multi-field runtime decoding support
Stevengre 204c6d4
refactor: better implementation for struct decoding
Stevengre 536710e
chore: format json
Stevengre 8c9736e
fix: add preserve-definedness for #msBytes
Stevengre 60e913c
fix: apply suggestions
Stevengre 449b729
fix: comment
Stevengre d4490b6
fix: remoe useless attribute
Stevengre 135ca3d
fix
Stevengre 39de796
fix: update expected output
Stevengre de22f57
fix: apply suggestions to assert equal TYS and OFFSET
Stevengre File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 24 additions & 0 deletions
24
kmir/src/tests/integration/data/exec-smir/newtype-pubkey/newtype-pubkey.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| #![allow(dead_code)] | ||
|
|
||
| #[derive(Copy, Clone)] | ||
| pub struct Pubkey(pub [u8; 32]); | ||
|
|
||
| const KEY: Pubkey = Pubkey([ | ||
| 0, 1, 2, 3, 4, 5, 6, 7, | ||
| 8, 9, 10, 11, 12, 13, 14, 15, | ||
| 16, 17, 18, 19, 20, 21, 22, 23, | ||
| 24, 25, 26, 27, 28, 29, 30, 31, | ||
| ]); | ||
|
|
||
| #[inline(never)] | ||
| fn use_inner(arr: &[u8; 32]) -> usize { | ||
| // Touch the array so MIR keeps the projection | ||
| if arr[0] == 0 { 32 } else { 0 } | ||
| } | ||
|
|
||
| fn main() { | ||
| let pk = KEY; // forces constant decoding of StructType(newtype) | ||
| let len = use_inner(&pk.0); // field projection .0; needs StructType decode to Aggregate | ||
| core::hint::black_box(len); | ||
| } | ||
|
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.