pinnacle

Crates.iopinnacle
lib.rspinnacle
version0.1.3
sourcesrc
created_at2023-04-03 09:21:11.347337
updated_at2023-04-19 11:03:02.365974
descriptionRust wrapper for Pinnacle Sports API
homepage
repositoryhttps://github.com/imbolc/pinnacle
max_upload_size
id828976
size84,763
Imbolc (imbolc)

documentation

README

License Crates.io Docs.rs

pinnacle

Rust Wrapper for Pinnacle Sports 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 and probably a response. Don't hesitate to make a PR if you do.

Here are all the currently wrapped [requests].

Usage

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:

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?;

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 <!-- cargo-sync-readme start --> and <!-- cargo-sync-readme end --> markers, don't edit README.md directly, but rather change the documentation on top of src/lib.rs and then synchronize the readme with:

cargo sync-readme

(make sure the cargo command is installed):

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.

Commit count: 21

cargo fmt