Crate pinnacle

Source
Expand description

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

Modules§

caching_client
Pinnacle API client with the ability to cache requests in the file system. This replicates the PinnacleClient API and is designed for easy client swapping during development.
client
Pinnacle API client
prelude
Structs and traits for convenient import
requests
Typed Pinnacle API requests
responses
Typed Pinnacle API responses
traits
Traits
util
Utilities