pub struct ClientBuilder { /* private fields */ }Expand description
Builder for Client.
Implementations§
Source§impl ClientBuilder
impl ClientBuilder
Sourcepub fn base_url(self, url: impl Into<String>) -> Self
pub fn base_url(self, url: impl Into<String>) -> Self
Override the API origin (default https://bitculator.com).
Examples found in repository?
examples/quickstart.rs (line 15)
11fn main() -> Result<(), Error> {
12 let key = std::env::var("BITCULATOR_API_KEY").unwrap_or_default();
13 let base =
14 std::env::var("BITCULATOR_BASE_URL").unwrap_or_else(|_| "https://bitculator.com".into());
15 let client = Client::builder(key).base_url(base).build();
16
17 client.meta().ping::<Value>()?;
18
19 // Single resource, decoded as generic JSON (or bring your own type).
20 let bitcoin: Value = client.coins().get("bitcoin", Params::new())?;
21 println!("BTC price: {}", bitcoin["price"]); // decimal string, never rounded
22
23 // Top 5 coins by marketcap.
24 let page: Page<Value> = client
25 .coins()
26 .list(Params::new().set("per_page", 5).set("sort", "-marketcap"))?;
27 for coin in &page.data {
28 println!("#{} {} {}", coin["rank"], coin["symbol"], coin["price"]);
29 }
30
31 // Auto-paginate the first ~40 gainers.
32 let gainers: Page<Value> = client.coins().gainers(Params::new().set("per_page", 20))?;
33 for (i, item) in gainers.auto_paging().enumerate() {
34 let coin = item?;
35 println!("gainer: {}", coin["symbol"]);
36 if i >= 39 {
37 break;
38 }
39 }
40
41 println!("quota: {:?}", client.quota());
42 Ok(())
43}Sourcepub fn max_retries(self, retries: u32) -> Self
pub fn max_retries(self, retries: u32) -> Self
Set the number of automatic retries for 429/5xx/network errors (default 2).
Sourcepub fn user_agent(self, ua: impl Into<String>) -> Self
pub fn user_agent(self, ua: impl Into<String>) -> Self
Override the User-Agent header.
Sourcepub fn build(self) -> Client
pub fn build(self) -> Client
Build the client.
§Panics
Panics if the API key is empty — a misconfigured key should fail at construction, not on the first request.
Examples found in repository?
examples/quickstart.rs (line 15)
11fn main() -> Result<(), Error> {
12 let key = std::env::var("BITCULATOR_API_KEY").unwrap_or_default();
13 let base =
14 std::env::var("BITCULATOR_BASE_URL").unwrap_or_else(|_| "https://bitculator.com".into());
15 let client = Client::builder(key).base_url(base).build();
16
17 client.meta().ping::<Value>()?;
18
19 // Single resource, decoded as generic JSON (or bring your own type).
20 let bitcoin: Value = client.coins().get("bitcoin", Params::new())?;
21 println!("BTC price: {}", bitcoin["price"]); // decimal string, never rounded
22
23 // Top 5 coins by marketcap.
24 let page: Page<Value> = client
25 .coins()
26 .list(Params::new().set("per_page", 5).set("sort", "-marketcap"))?;
27 for coin in &page.data {
28 println!("#{} {} {}", coin["rank"], coin["symbol"], coin["price"]);
29 }
30
31 // Auto-paginate the first ~40 gainers.
32 let gainers: Page<Value> = client.coins().gainers(Params::new().set("per_page", 20))?;
33 for (i, item) in gainers.auto_paging().enumerate() {
34 let coin = item?;
35 println!("gainer: {}", coin["symbol"]);
36 if i >= 39 {
37 break;
38 }
39 }
40
41 println!("quota: {:?}", client.quota());
42 Ok(())
43}Auto Trait Implementations§
impl Freeze for ClientBuilder
impl RefUnwindSafe for ClientBuilder
impl Send for ClientBuilder
impl Sync for ClientBuilder
impl Unpin for ClientBuilder
impl UnsafeUnpin for ClientBuilder
impl UnwindSafe for ClientBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more