[![License](https://img.shields.io/crates/l/pinnacle.svg)](https://choosealicense.com/licenses/mit/) [![Crates.io](https://img.shields.io/crates/v/pinnacle.svg)](https://crates.io/crates/pinnacle) [![Docs.rs](https://docs.rs/pinnacle/badge.svg)](https://docs.rs/pinnacle) # pinnacle Rust Wrapper for [Pinnacle Sports API][api] > **Note** > Not all of the API is currently wrapped, but it should be relatively easy to add missing > endpoints. All you need to do is implement the corresponding > [request](`traits::PinnacleApiRequest`) and probably a [response](`responses`). > Don't hesitate to make a PR if you do. Here are all the currently wrapped [`requests`]. ## Usage ```rust,no_run use pinnacle::prelude::*; let client = PinnacleClient::new("pinnacle_user", "pinnacle_password"); let req = GetStraightOdds { sport_id: 29, ..Default::default() }; let odds = client.get(&req).await?; ``` You can also use a client that caches responses, which is helpful for development purposes: ```rust,no_run use pinnacle::prelude::*; use std::time::Duration; let client = PinnacleCachingClient::new( "pinnacle_user", "pinnacle_password", "cache-folder", Duration::from_secs(60 * 5), ); let balance = client.get(&GetClientBalance).await?; // Now, if you repeat the request within 5 minutes, the cached version will be used // instead of making a new request. let cached_balance = client.get(&GetClientBalance).await?; ``` [api]: https://pinnacleapi.github.io/ ## Contributing We appreciate all kinds of contributions, thank you! ### Note on README Most of the readme is automatically copied from the crate documentation by [cargo-sync-readme][]. This way the readme is always in sync with the docs and examples are tested. So if you find a part of the readme you'd like to change between `` and `` markers, don't edit `README.md` directly, but rather change the documentation on top of `src/lib.rs` and then synchronize the readme with: ```bash cargo sync-readme ``` (make sure the cargo command is installed): ```bash cargo install cargo-sync-readme ``` If you have [rusty-hook] installed the changes will apply automatically on commit. ## License This project is licensed under the [MIT license](LICENSE). [cargo-sync-readme]: https://github.com/phaazon/cargo-sync-readme [rusty-hook]: https://github.com/swellaby/rusty-hook