Skip to main content

polygon_io/reference/
types.rs

1extern crate serde_json;
2extern crate ureq;
3
4use crate::client::{Client, Result};
5use serde::{Deserialize, Serialize};
6use std::collections::HashMap;
7
8#[derive(Debug, Deserialize, Serialize)]
9#[serde(rename_all = "camelCase")]
10pub struct Types {
11	pub types:       HashMap<String, String>,
12	pub index_types: HashMap<String, String>
13}
14
15#[derive(Debug, Deserialize, Serialize)]
16pub struct TypesResponse {
17	pub results: Types,
18	// For debugging
19	pub status:  String
20}
21
22impl Client {
23	pub fn get_types(&self) -> Result<TypesResponse> {
24		let uri = format!("{}/v2/reference/types", self.api_uri);
25
26		let resp = self.get_response::<TypesResponse>(&uri)?;
27
28		Ok(resp)
29	}
30}
31
32#[cfg(test)]
33mod types {
34	use crate::client::Client;
35
36	#[test]
37	fn works() {
38		let client = Client::new().unwrap();
39		let types = client.get_types().unwrap();
40		assert_eq!(
41			types.results.types.get("CS").unwrap(),
42			&String::from("Common Stock")
43		);
44	}
45}