-
Notifications
You must be signed in to change notification settings - Fork 1
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
Rewrite #30
Draft
Thomasdezeeuw
wants to merge
202
commits into
master
Choose a base branch
from
rewrite
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Rewrite #30
Conversation
This file contains 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
We'll add them back once we need them.
Simple hashing implementation that only works for Keys.
Don't require the storage::Read trait to be implemented and return the Key as return value for add_blob.
It contains the Protocol trait which defines how to interact with connected clients. With this is should be easier to support multiple protocol, such as HTTP and RESP, within the same implementation.
Want to use a published version at some point.
We'll add them back later.
Easy way to provide some more context to an error.
Contains a single actor that will control interaction between a protocol, i.e. a user, and the storage.
And add these to the controller configuration.
So we can add submodules.
We can put it in implementation, rather then type definitions.
Same as FromStr::from_str, but then for bytes.
Splits the Error type into two: RequestError and ResponseError. Furthermore this adds the IsFatal trait requirement to RequestError to determine whether or not an error is fatal. For example an I/O error which can't be recovered from versus a protocol error which can be recovered from. Also add reply_to_error to send a reply for an error.
Also introduces a new controller::Error.
Will need to make this asynchronous.
Well the reading side at least. This implements the RESP version 2, used by Redis, as a Protocol implementation.
Also makes the method asynchronous.
So we can use the Connection trait.
Stabilises associated_type_bounds.
Just some basic smoke tests.
These tests don't compile for one stupid reason or another. Async functions still don't work nicely we you start pushing them.
Makes the test output less verbose
Also add Key::try_parse and make both functions constant.
Useful in tests.
Instead of manually implementing it, as deriving it will also implement StructuralPartialEq.
Unused.
Unused.
Makes it a lot simpler and we don't have to use blocking std::io traits.
We don't hash the key any more, so these are no longer valuable.
Writes the key, as a hex string, to a Vec<u8>.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Work-in-progress.