POC API that avoids clone for consideration. #44
Merged
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.
Hi!
I came across this library a while back when I was looking at different jsonpath libraries and it looks nice. The only issue seemed to be that the
JsonPathFinder
API seemed to require cloning to happen, which was a showstopper for my use case. Recently I had cause to look again as the other major jsonpath library for Rust looks abandoned and has bugs.It looks like the underlying query implementation for
jsonpath-rust
supports query without having to clone the input data, however the use ofJsonPathFinder
forces this to happen.This PR is a POC API for querying without cloning that introduces a new enum
JsonPtr
for holding values. The reason this has to exist is thatderef
onJsonPathValue
is not possible without a panic forNoValue
.It'd be great if this approach could be considered for this project.