From 29fa2abc5f6d36aa6d7ea66ef634b5fe5aababf8 Mon Sep 17 00:00:00 2001 From: Adrien Prokopowicz <6529475+prokopyl@users.noreply.github.com> Date: Tue, 23 Jun 2026 14:43:55 +0200 Subject: [PATCH] Make most public structs/enums non_exhaustive --- examples/open_parented/src/main.rs | 2 ++ examples/open_window/src/main.rs | 1 + examples/render_femtovg/src/main.rs | 1 + examples/render_wgpu/src/main.rs | 1 + src/event.rs | 8 ++++++++ src/window_open_options.rs | 1 + 6 files changed, 14 insertions(+) diff --git a/examples/open_parented/src/main.rs b/examples/open_parented/src/main.rs index 580ff941..ccfc72cf 100644 --- a/examples/open_parented/src/main.rs +++ b/examples/open_parented/src/main.rs @@ -60,6 +60,7 @@ impl WindowHandler for ParentWindowHandler { Event::Mouse(e) => println!("Parent Mouse event: {:?}", e), Event::Keyboard(e) => println!("Parent Keyboard event: {:?}", e), Event::Window(e) => println!("Parent Window event: {:?}", e), + _ => {} } EventStatus::Captured @@ -111,6 +112,7 @@ impl WindowHandler for ChildWindowHandler { Event::Mouse(e) => println!("Child Mouse event: {:?}", e), Event::Keyboard(e) => println!("Child Keyboard event: {:?}", e), Event::Window(e) => println!("Child Window event: {:?}", e), + _ => {} } EventStatus::Captured diff --git a/examples/open_window/src/main.rs b/examples/open_window/src/main.rs index f764edc4..5fa23490 100644 --- a/examples/open_window/src/main.rs +++ b/examples/open_window/src/main.rs @@ -169,5 +169,6 @@ fn log_event(event: &Event) { Event::Mouse(e) => println!("Mouse event: {:?}", e), Event::Keyboard(e) => println!("Keyboard event: {:?}", e), Event::Window(e) => println!("Window event: {:?}", e), + _ => {} } } diff --git a/examples/render_femtovg/src/main.rs b/examples/render_femtovg/src/main.rs index 0eb5581a..69904f64 100644 --- a/examples/render_femtovg/src/main.rs +++ b/examples/render_femtovg/src/main.rs @@ -125,5 +125,6 @@ fn log_event(event: &Event) { Event::Mouse(e) => println!("Mouse event: {:?}", e), Event::Keyboard(e) => println!("Keyboard event: {:?}", e), Event::Window(e) => println!("Window event: {:?}", e), + _ => {} } } diff --git a/examples/render_wgpu/src/main.rs b/examples/render_wgpu/src/main.rs index 5f1746d7..f01a711e 100644 --- a/examples/render_wgpu/src/main.rs +++ b/examples/render_wgpu/src/main.rs @@ -215,5 +215,6 @@ fn log_event(event: &Event) { Event::Mouse(e) => println!("Mouse event: {:?}", e), Event::Keyboard(e) => println!("Keyboard event: {:?}", e), Event::Window(e) => println!("Window event: {:?}", e), + _ => {} } } diff --git a/src/event.rs b/src/event.rs index 5ca169b5..5f020d69 100644 --- a/src/event.rs +++ b/src/event.rs @@ -3,6 +3,7 @@ use keyboard_types::{KeyboardEvent, Modifiers}; use std::path::PathBuf; #[derive(Debug, Copy, Clone, Eq, PartialEq)] +#[non_exhaustive] pub enum MouseButton { Left, Middle, @@ -14,6 +15,7 @@ pub enum MouseButton { /// A scroll movement. #[derive(Debug, Clone, Copy, PartialEq)] +#[non_exhaustive] pub enum ScrollDelta { /// A line-based scroll movement Lines { @@ -33,6 +35,7 @@ pub enum ScrollDelta { } #[derive(Debug, Clone, PartialEq)] +#[non_exhaustive] pub enum MouseEvent { /// The mouse cursor was moved CursorMoved { @@ -107,6 +110,7 @@ pub enum MouseEvent { } #[derive(Debug, Clone)] +#[non_exhaustive] pub enum WindowEvent { Focused, Unfocused, @@ -114,12 +118,14 @@ pub enum WindowEvent { } #[derive(Debug, Clone)] +#[non_exhaustive] pub enum Event { Mouse(MouseEvent), Keyboard(KeyboardEvent), Window(WindowEvent), } +#[non_exhaustive] #[derive(Debug, Clone, Copy, PartialEq)] pub enum DropEffect { Copy, @@ -128,6 +134,7 @@ pub enum DropEffect { Scroll, } +#[non_exhaustive] #[derive(Debug, Clone, PartialEq)] pub enum DropData { None, @@ -143,6 +150,7 @@ pub enum DropData { /// or it isn't obviously useful. Currently, only [`Event::Keyboard`] variants /// are supported. #[derive(Debug, Clone, Copy, PartialEq)] +#[non_exhaustive] pub enum EventStatus { /// Event was handled by your window and will not be sent back to the /// platform for further processing. diff --git a/src/window_open_options.rs b/src/window_open_options.rs index e8c37a0e..e276f9d8 100644 --- a/src/window_open_options.rs +++ b/src/window_open_options.rs @@ -15,6 +15,7 @@ pub enum WindowScalePolicy { /// The options for opening a new window #[derive(Debug, Clone, PartialEq)] +#[non_exhaustive] pub struct WindowOpenOptions { pub title: String,