|
|
|
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();
|
|
|
|
}
|