Hi all. I'm coming near to completing my first crate (not published yet as it's not quite complete) and if possible, I'd like someone (or a few folk!) to look over it, give it a review, and maybe express a few thoughts re the API it provides, how it provides it, and if it could provide any other functionality I've not already thought of. The README is still a little bare, but there are documentation tests for all the public calls (a particularly simple example can be found at "/core/mod.rs") that should make clear the functionality I'm trying to provide. All the unit and documentation tests currently pass.
Just to give a little background, for an unrelated project I needed the ability to search json using the Json Path specification (see JSONPath -- XPath for JSON) specifically retaining ownership of the serde_json::Value, providing the filter functionality mentioned in the specification above, and doing so with some means to provide mutable access to references. All the existing crates I found couldn't do all of these in one place, and as such I decided I'd have to roll my own. In doing so, I stumbled upon the additional functionality re serde::Deseralize and serde::DeseralizeOwned, really. I didn't need that per se, just figured it seemed quite cool!
Please note it is a work in progress, and I know the parser in particular isn't really tested much and needs work to finish it off. (There are TODOs to that effect.) But I just wanted to canvass opinion/suggestions now so I don't end up modifying stuff later and having to rewrite a load of tests/examples etc too.
The GitLab repo is here: https://gitlab.com/mikey_pooh/jpath.
All comments very much appreciated. Thanks in advance.
P.S. Any football fans out there, please don't take offence if your team lost in my made up results!