Redo the library
Created by: zeyla
This commit essentially redoes the library from the ground up, providing
an idiomatic API wrapper along with hyper
and reqwest
HTTP client
implementations.
The library provides implementations in the form of traits, to allow re-use of a user's client while also being able to use their client and not maintaining the library's own HTTP client wrapper (or oneshot clients that are not re-used).
reqwest
and hyper
features are feature-flagged, with the
reqwest-support
or hyper-support
features, respectively, needing to
be implemented for compilation of them.
This can be enabled like so:
[dependencies.owo]
default-features = false
features = ["hyper-support"]
git = "https://github.com/whats-this/owo.rs"
This will not compile the default client (reqwest
) support, and will
compile hyper
support.
Documentation, doctests, example binaries, and API-hitting tests have
been provided, allowing for automated CI for the first three test types,
while allowing developer-specified API-hitting testing via
cargo test -- --ignored
. Essentially, tests that hit the API are not
ran by CI.
Lastly, responses are parsed and deserialized by the library via the use of the serde framework, providing mapped structs for user ease-of-use.
Edited note: reqwest
's master branch is depended on due to its multipart implementation not being released as a version yet, once it is then the library can rely on a version.