mod scheme; use std::io::Write; use scheme::AccessibilityScheme; fn log_msg(level: &str, msg: &str) { let _ = writeln!(std::io::stderr(), "[accessibility] {} {}", level, msg); } fn main() { let mut scheme = AccessibilityScheme::new(); let socket = redox_scheme::Socket::nonblock("accessibility") .expect("accessibility: failed to register scheme:accessibility"); log_msg("INFO", "registered scheme:accessibility"); loop { let request = match socket.next_request(redox_scheme::SignalBehavior::Restart) { Ok(Some(r)) => r, Ok(None) => { log_msg("INFO", "scheme unmounted, exiting"); break; } Err(e) => { log_msg("ERROR", &format!("failed to read request: {}", e)); std::process::exit(1); } }; match request.handle_scheme_block_mut(&mut scheme) { Ok(response) => { if let Err(e) = socket.write_response(response, redox_scheme::SignalBehavior::Restart) { log_msg("ERROR", &format!("failed to write response: {}", e)); } } Err(_request) => { log_msg("ERROR", "unhandled scheme request"); } } } }