sable-platform 0.1.0

Platform abstraction layer for Sable Engine - windowing, input, and events
Documentation
//! # Sable Platform
//!
//! Platform abstraction layer providing windowing, input handling, and event management.
//!
//! ## Modules
//!
//! - [`window`] — Window creation and management
//! - [`event`] — Event loop and application events
//! - [`input`] — Input state tracking (keyboard, mouse, gamepad)
//!
//! ## Quick Start
//!
//! ```rust,ignore
//! use sable_platform::prelude::*;
//!
//! fn main() {
//!     let event_loop = EventLoop::new().unwrap();
//!     let window = Window::new(&event_loop, WindowConfig::default()).unwrap();
//!
//!     event_loop.run(|event, control_flow| {
//!         match event {
//!             AppEvent::CloseRequested => control_flow.exit(),
//!             AppEvent::RedrawRequested => {
//!                 // Render here
//!             }
//!             _ => {}
//!         }
//!     }).unwrap();
//! }
//! ```

#![warn(missing_docs)]
#![warn(clippy::all)]
#![warn(clippy::pedantic)]
#![allow(clippy::module_name_repetitions)]

pub mod event;
pub mod input;
pub mod window;

mod error;

pub use error::{PlatformError, Result};

/// Prelude module for convenient imports.
pub mod prelude {
    pub use crate::event::{AppEvent, ControlFlow, EventLoop};
    pub use crate::input::{InputEvent, InputState, KeyCode, MouseButton};
    pub use crate::window::{Window, WindowConfig};
    pub use crate::{PlatformError, Result};
}