git-gemini-forge 0.1.1

A simple Gemini server that serves a read-only view of public repositories from a Git forge.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
pub mod error;
pub mod responses;
use isahc::prelude::*;
use url::Url;

/// Fetches data from the given URL.
pub fn get<D>(url: Url) -> Result<D, error::Error> where D: serde::de::DeserializeOwned {
	let uri: &str = url.as_str();
	let Ok(mut response) = isahc::get(uri) else {
		// FIXME: How to get the isahc error from here?
		return Err(error::Error::NetworkFailure);
	};

	return match response.json() {
		Ok(obj) => Ok(obj),
		Err(err) => Err(error::Error::UnexpectedResponse(err)),
	}
}