You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As pointed out in this comment on the Rust forum (and subsequent comments) and in this Reddit comment, Struson's API is currently difficult to become familiar with for new users, and relying on panics to enforce correct API usage instead of relying on the compiler is non-idiomatic and error-prone.
Enhancement description
Keep the current JsonReader and JsonWriter API because it is most flexible. But provide additional API which is simpler and more intuitive to use (at the cost of potentially not exposing all JsonReader and JsonWriter features). The new API should be built on top of JsonReader and JsonWriter.
But don't use Drop for implicitly closing arrays or objects (or performing similar fallible actions) because it cannot propagate errors.
Alternatives / workarounds
Don't add new API but instead adjust JsonReader and JsonWriter
However, this might prevent using them in some use cases where they can currently be used.
Don't perform any API changes at all, and if necessary try to adjust the documentation making the intended usage clearer
The text was updated successfully, but these errors were encountered:
Should the naming of the API ("simple API"), the traits, structs and methods be adjusted?
Should the module structure be changed?
Currently the API is under reader::simple and writer::simple.
Is the API usable for real world use cases? Can it be improved? Is functionality missing?
Do you consider the usage of Box<dyn Error> for array and object reading and writing methods to be limiting? Do you have suggestions for alternatives, which don't make the function arguments cumbersome to implement?
Problem solved by the enhancement
As pointed out in this comment on the Rust forum (and subsequent comments) and in this Reddit comment, Struson's API is currently difficult to become familiar with for new users, and relying on panics to enforce correct API usage instead of relying on the compiler is non-idiomatic and error-prone.
Enhancement description
Keep the current
JsonReader
andJsonWriter
API because it is most flexible. But provide additional API which is simpler and more intuitive to use (at the cost of potentially not exposing allJsonReader
andJsonWriter
features). The new API should be built on top ofJsonReader
andJsonWriter
.But don't use
Drop
for implicitly closing arrays or objects (or performing similar fallible actions) because it cannot propagate errors.Alternatives / workarounds
JsonReader
andJsonWriter
However, this might prevent using them in some use cases where they can currently be used.
The text was updated successfully, but these errors were encountered: