pub trait VRService: Send {
// Required methods
fn initialize(&mut self) -> Result<(), String>;
fn fetch_displays(
&mut self,
) -> Result<Vec<Arc<RefCell<dyn VRDisplay>>>, String>;
fn fetch_gamepads(
&mut self,
) -> Result<Vec<Arc<RefCell<dyn VRGamepad>>>, String>;
fn is_available(&self) -> bool;
fn poll_events(&self) -> Vec<VREvent>;
}