You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: main.rs
    path of file: ./repos/rusty-shooter/src
    
    the code of the file until where you have to start completion: #![deny(unsafe_code)]
#![deny(unused_must_use)]

extern crate crossbeam;
extern crate fyrox;

mod actor;
mod bot;
mod character;
mod control_scheme;
mod effects;
mod gui;
mod hud;
mod item;
mod jump_pad;
mod leader_board;
mod level;
mod match_menu;
mod menu;
mod message;
mod options_menu;
mod player;
mod projectile;
mod weapon;

use crate::{
    actor::Actor, control_scheme::ControlScheme, hud::Hud, level::Level, menu::Menu,
    message::Message,
};
use fyrox::window::CursorGrabMode;
use fyrox::{
    core::{
        futures::executor::block_on,
        pool
    
    pub fn process_input_event(&mut self, event: &Event<()>) {
        self.process_dispatched_event(event);

        if let Event::WindowEvent { event, .. } = event {
            if let WindowEvent::KeyboardInput { input, .. } = event {
                if let ElementState::Pressed = input.state {
                    if let Some(key) = input.virtual_keycode {
                        if key == VirtualKeyCode::Escape {
                            self.set_menu_visible(!self.is_menu_visible());
                        }
                    }
                }
            }
        }

        self.menu.process_input_event(&mut self.engine, &event);
        self.hud.process_event(&mut self.engine, &event);
    }