Provide *_result variants of reading functions with informative errors #43
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.
Currently Ezjsonm does not provide users with the ability to properly
report errors. In particular, the error location inside the JSON
source is provided by Jsonm and thrown away by Ezjsonm.
In ocaml-mustache I had to remove the Ezjsonm usage and turn it into Jsonm directly to provide sensible error messages: rgrinberg/ocaml-mustache#63.
This PR provides *_result variants of reading functions
that (instead of failing in badly-documented ways) return an
informative error type in the case of reading failure, along
with simple functions to provide basic error messages to users.
Note: this PR uses the "result" type from the standard library, and as
a consequence it bumps the required OCaml version from 4.04 to
4.08. If this is judged too strong, we could use a compatibility
"result" module instead.
Finally: I would like to write tests for this PR, but I am not sure what would be the right approach. Any recommendation/preference?