fred_api makes requests to FRED to download
economic data, caching it to a data-store so that repeated requests to FRED can be
avoided.
Requirements
-
FRED_API_KEY environment variable can be set or supplied directly.
-
FRED_CACHE is the directory to place the cache. It can also be set as an
environment variable or supplied directly.
Code Example
use {
debug_err::{DebugErr, src},
fred_api::{build_request, FieldIter, fred_cache, Lookup, send_request},
sled::{Db, IVec},
tokio,
};
#[tokio::main]
pub async fn main() {
let cache: sled::Db = sled::open(fred_cache(None).unwrap()).unwrap();
let req = build_request("series/observations?series_id=GNPCA&", None).unwrap();
let bytes: IVec = send_request(&req, Lookup::FredOnCacheMiss, &cache).await.unwrap();
let mut field_iter = FieldIter::new("observation", vec!("date", "value"), bytes);
let fields = field_iter.next().unwrap().unwrap();
assert_eq!("1971-04-01", fields[0]);
assert_eq!(0.850603488248666, fields[1].parse::<f32>().unwrap());
}