🏗️ Elegant & Highly Performant Async Gemini Server Framework for the Modern Age
async
framework
gemini-protocol
protocol
gemini
rust
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}