Skip to content
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

Allow for multiple calls to finalize (or equivalent) #111

Open
jpittis opened this issue Dec 24, 2023 · 0 comments
Open

Allow for multiple calls to finalize (or equivalent) #111

jpittis opened this issue Dec 24, 2023 · 0 comments

Comments

@jpittis
Copy link

jpittis commented Dec 24, 2023

Imagine a use-case where someone would like to maintain a rolling CRC digest, while also regularly reading the sum of that CRC digest via the equivalent of calling finalize. This is a common pattern used by write ahead logs where you want to maintain a rolling CRC of all the data written to the log, while also embedding the rolling finalized value in each of the records written to disk.

As far as I can tell, the current APIs are not compatible with this use-case:

  • The higher-level Digest struct's finalize method unnecessarily consumes itself via it's self receiver, disallowing the interleaving of multiple calls to update and finalize.
  • The lower level Crc structs don't make update or finalize public, disallowing consumes to write their own version of Digest that allows the interleaving of multiple calls to update and finalize.

A workaround might be to clone the Digest before calling finalize which seems inefficient.

Any thoughts on this use-case and the best way to unlock it?

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

No branches or pull requests

1 participant