You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
970 B
41 lines
970 B
extern crate gempress; |
|
|
|
use gempress::Gempress; |
|
use gempress::error::GempressResult; |
|
use gempress::gemini; |
|
use gempress::gemini::StatusCode; |
|
use std::path::PathBuf; |
|
use std::hash::{Hash, Hasher}; |
|
use std::collections::hash_map::DefaultHasher; |
|
|
|
fn calculate_hash<T: Hash>(t: &T) -> u64 { |
|
let mut s = DefaultHasher::new(); |
|
t.hash(&mut s); |
|
s.finish() |
|
} |
|
|
|
fn index_handler(req: Box<gemini::Request>, mut res: Box<gemini::Response>) -> GempressResult<()>{ |
|
let response = format!(r#" |
|
# Astrofarm |
|
Hello, {} |
|
"#, "user"); |
|
|
|
println!("Index handler"); |
|
|
|
res.status(StatusCode::Success)?.send(response.as_bytes())?; |
|
Ok(()) |
|
} |
|
|
|
fn main() { |
|
// Run make_cert.sh to generate a certificate |
|
let config = gempress::Config::new(PathBuf::from("cert.pem"), PathBuf::from("key.pem")); |
|
|
|
let mut app = Gempress::new(config); |
|
|
|
app.on("/", &index_handler); |
|
|
|
app.listen(1965, || { |
|
println!("Listening on port 1965"); |
|
}) |
|
.unwrap(); |
|
}
|
|
|