1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//! # Userstyles
//!
//! `Userstyles` provides API bindings for `userstyles.org`.
//! This makes it possible to get styles, their settings and other metadata.
//!
//! For getting all information about a style you can use [`get_style`](fn.get_style.html).
//!
//! ```rust
//! use userstyles::get_style;
//!
//! // Style URL: "https://userstyles.org/styles/37035/github-dark"
//! let style = get_style(37035);
//! ```
//!
//! If you just want to access the css with the default settings you can
//! use the [`get_css`](response/struct.Style.html#method.get_css) method with `None` as parameter.
//!
//! ```rust
//! use userstyles::response::Style;
//!
//! let style = Style::default();
//!
//! let css = style.get_css(None);
//! ```
//!
//! If you are interested in the css, but want to change the settings,
//! you can also use [`get_css`](response/struct.Style.html#method.get_css).
//! This takes a [`HashMap`](https://doc.rust-lang.org/std/collections/struct.HashMap.html)
//! with all keys and values you want to set. You can get all the available settings from
//! [`Style.style_settings`](response/struct.Style.html#fields).
//!
//! ```rust
//! use userstyles::response::Style;
//! use std::collections::HashMap;
//!
//! let style = Style::default();
//! let mut map = HashMap::new();
//! map.insert(String::from("ACCENTCOLOR"), String::from("#f00ba2"));
//!
//! let css = style.get_css(Some(&mut map));
//! ```
extern crate serde_derive;
extern crate serde_json;
extern crate reqwest;
extern crate serde;
use Style;
const API_URL_BASE: &str = "https://userstyles.org/api/v1/styles/";
/// Make a request to the API for a style.
/// `id` is the identifier of the style you want to request.
///
/// # Panics
///
/// Panics under the following conditions:
///
/// - Unable to create a request
/// - Response is not `200`
/// - The response could not be parsed
///
/// # Examples
///
/// ```
/// use userstyles::get_style;
///
/// // Style URL: "https://userstyles.org/styles/37035/github-dark"
/// let response = get_style(37035);
/// assert!(response.is_ok());
/// ```