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

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