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.
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
feat: matching merkle db encoding #258
feat: matching merkle db encoding #258
Changes from 1 commit
1e7383d
1ef3409
85f26f3
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After reviewing the whole file, I think everything can be greatly simplified:
If we want to add further constraints on types that are encodable/decodable, we can have the following traits:
And bound the
encode
anddecode
functions by these traits instead.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Docs? Seems weird to
serde(skip)
here...There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pub
=>pub(crate)
Please consider making these methods on
Data
:I'm not sure how these get used, but if you're just appending to this trailing vec every time, then these methods should probably be called
append_int
or something, and can take&mut self
instead.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤔 , have you looked at the
serde::Serializer
implementation for strings? https://docs.rs/bincode/latest/src/bincode/ser/mod.rs.html#121-124It looks like the length is already encoded...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see the difference now, my bad.
I still think we should use marker traits here (see my comment on this file).
If we just start with
str
, it's not really beneficial to haveEncode: Serialize
, but that would come in super handy for all the other primitives.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BUT... They might potentially make some changes in MerkleDB so we could potentially just use the default implementation.