diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2023-09-03 13:04:32 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2023-09-03 13:04:32 +0400 |
| commit | 5a707c879ba9b21665d2207020fe354040b807b2 (patch) | |
| tree | 5bdc370a4b3068b0878d3d85acfbd25bf23a3952 /src/main.rs | |
| parent | 3bd5a012cbf15bd294e1a6290914a6e687cbcf2d (diff) | |
| download | niri-5a707c879ba9b21665d2207020fe354040b807b2.tar.gz niri-5a707c879ba9b21665d2207020fe354040b807b2.tar.bz2 niri-5a707c879ba9b21665d2207020fe354040b807b2.zip | |
Replace Backend trait with enum
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/src/main.rs b/src/main.rs index e2c42cba..216dedee 100644 --- a/src/main.rs +++ b/src/main.rs @@ -38,8 +38,7 @@ pub struct LoopData { niri: Niri, display_handle: DisplayHandle, - tty: Option<Tty>, - winit: Option<Winit>, + backend: Backend, // Last so that it's dropped after the Smithay state in Niri and related state in Tty. // Otherwise it will segfault on quit. @@ -64,14 +63,10 @@ fn main() { let has_display = env::var_os("WAYLAND_DISPLAY").is_some() || env::var_os("DISPLAY").is_some(); - let mut winit = None; - let mut tty = None; - let backend: &mut dyn Backend = if has_display { - winit = Some(Winit::new(event_loop.handle())); - winit.as_mut().unwrap() + let backend = if has_display { + Backend::Winit(Winit::new(event_loop.handle())) } else { - tty = Some(Tty::new(event_loop.handle())); - tty.as_mut().unwrap() + Backend::Tty(Tty::new(event_loop.handle())) }; let mut display = Display::new().unwrap(); @@ -88,16 +83,10 @@ fn main() { display_handle, display, - tty, - winit, + backend, }; - if let Some(tty) = data.tty.as_mut() { - tty.init(&mut data.niri); - } - if let Some(winit) = data.winit.as_mut() { - winit.init(&mut data.niri); - } + data.backend.init(&mut data.niri); if let Some((command, args)) = cli.command.split_first() { if let Err(err) = std::process::Command::new(command).args(args).spawn() { |
