feat!: Make blobs more cheaply cloneable by by giving it an Inner #30
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.
Description
Make blobs more cheaply cloneable by by giving it an Inner
Instead of having lots of Arcs in Blobs, introduce a BlobsInner and arc the whole thing. This makes cloning Blobs much cheaper and also simplifies the code a bit.
Also remove the lazily initialized rpc client/rpc handler pair and instead provide a fn to return that handler for the API user to store somewhere.
Breaking Changes
Notes & open questions
How should the fn be called that returns the rpc handler. Probably best to rename it since just changing .client() to return an owned thing instead of a borrowed thing would result in people using it in a wrong way (create it on demand on each call, for example).
create_client()
?create_handler()
?Likewise we now need a name for the thing that is returned. People want to store it somewhere, so it can't just be an impl Deref.
Change checklist