use std::io::Write; use std::env; use std::collections::btree_map::BTreeMap; fn write_stderr( msg : String ) { let mut stderr = std::io::stderr(); write!(&mut stderr, "{}", msg).unwrap(); } fn write_stderr_s( msg : &str ) { write_stderr( msg.to_string() ); } fn write_stdout( msg : String ) { let mut stdout = std::io::stdout(); write!(&mut stdout, "{}", msg).unwrap(); } fn write_stdout_s( msg : &str ) { write_stdout( msg.to_string() ); } fn html_escape( msg : String ) -> String { let mut copy : String = String::with_capacity( msg.len() ); for thechar in msg.chars() { if thechar == '&' { copy.push_str( "&" ); } else if thechar == '<' { copy.push_str( "<" ); } else if thechar == '>' { copy.push_str( ">" ); } else if thechar == '\"' { copy.push_str( """ ); } else { copy.push( thechar ); } } return copy; } fn main() { write_stdout_s( "Status: 301 Moved Permanently\n" ); write_stdout_s( "Location: https://www.vg.no\n" ); write_stdout_s( "Content-type: text/html\n" ); write_stdout_s( "\n" ); write_stdout_s( "\n" ); write_stdout_s( "
\n" ); write_stdout_s( "Key | Value |
---|---|
{} | {} |