🏗️ Elegant & Highly Performant Async Gemini Server Framework for the Modern Age
async framework gemini-protocol protocol gemini rust
at main 31 lines 691 B view raw
1use std::collections::HashMap; 2 3use matchit::Params; 4use openssl::x509::X509; 5use url::Url; 6 7#[allow(clippy::module_name_repetitions)] 8#[derive(Clone)] 9pub struct RouteContext { 10 pub peer_address: Option<std::net::SocketAddr>, 11 pub url: Url, 12 pub parameters: HashMap<String, String>, 13 pub certificate: Option<X509>, 14} 15 16impl RouteContext { 17 #[must_use] 18 pub fn new( 19 peer_address: std::io::Result<std::net::SocketAddr>, 20 url: Url, 21 parameters: &Params<'_, '_>, 22 certificate: Option<X509>, 23 ) -> Self { 24 Self { 25 peer_address: peer_address.ok(), 26 url, 27 parameters: crate::utilities::params_to_hashmap(parameters), 28 certificate, 29 } 30 } 31}