git-gemini-forge 0.5.2

A simple Gemini server that serves a read-only view of public repositories from a Git forge.
use super::ForgejoApi;
use crate::network::get::{call, ApiEndpoint};
use crate::network::ForgeApi;
use crate::network::{error, responses::ServerVersion};
use url::Url;

struct VersionEndpoint {
	base_url: Url,
}

impl ApiEndpoint<ServerVersion> for VersionEndpoint {
	fn url(&self) -> Url {
		return self.base_url.join("version").unwrap();
	}
}

/// Retrieves the forge version from the given API.
pub fn get_version(api: &ForgejoApi) -> Result<ServerVersion, error::Error> {
	let base_url = api.base_url().clone();
	let endpoint = VersionEndpoint { base_url };

	let server_version = call(&endpoint)?;
	return Ok(server_version);
}