1use reqwest;
10use reqwest::Url;
12use serde::de::DeserializeOwned;
13
14use crate::errors::*;
15use std::io::Read;
16
17pub fn open_bytes(url: Url) -> Result<Vec<u8>> {
19 let mut result = Vec::new();
20 reqwest::get(url)?.read_to_end(&mut result)?;
21 Ok(result)
22}
23
24pub fn open(url: Url) -> Result<Box<dyn Read>> {
26 Ok(Box::new(reqwest::get(url)?))
27}
28
29pub fn open_json<T: DeserializeOwned>(url: Url) -> Result<T> {
31 Ok(reqwest::get(url)?.json::<T>()?)
32}
33
34#[test]
35fn test_file_fetch() {
36 assert!(reqwest::get("https://gitlab.com/Artefaritaj/file-fetcher/raw/master/src/http.rs").is_ok())
37}