git-gemini-forge 0.2.0

A simple Gemini server that serves a read-only view of public repositories from a Git forge.
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 {
		// TODO: How to get the isahc error from here?
		return Err(error::Error::NetworkFailure);
	};

	return match response.json() {
		Ok(obj) => Ok(obj),
		Err(err) => {
			println!("Failed to parse value due to error: {err}");
			return Err(error::Error::UnexpectedResponse);
		},
	}
}