mirror of
https://github.com/rust-windowing/winit.git
synced 2026-08-30 05:10:03 -04:00
chore: Move part of error.rs to winit-core
Signed-off-by: John Nunley <dev@notgull.net>
This commit is contained in:
54
winit-core/src/error.rs
Normal file
54
winit-core/src/error.rs
Normal file
@@ -0,0 +1,54 @@
|
||||
//! Common error types.
|
||||
|
||||
use std::{error, fmt};
|
||||
|
||||
/// The error type for when the requested operation is not supported by the backend.
|
||||
#[derive(Clone)]
|
||||
pub struct NotSupportedError {
|
||||
_marker: (),
|
||||
}
|
||||
|
||||
impl Default for NotSupportedError {
|
||||
fn default() -> Self {
|
||||
Self::new()
|
||||
}
|
||||
}
|
||||
|
||||
impl NotSupportedError {
|
||||
/// Create a new [`NotSupportedError`].
|
||||
#[inline]
|
||||
pub fn new() -> NotSupportedError {
|
||||
NotSupportedError { _marker: () }
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Debug for NotSupportedError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> {
|
||||
f.debug_struct("NotSupportedError").finish()
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for NotSupportedError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> {
|
||||
f.pad("the requested operation is not supported by Winit")
|
||||
}
|
||||
}
|
||||
|
||||
impl error::Error for NotSupportedError {}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
#![allow(clippy::redundant_clone)]
|
||||
|
||||
use super::*;
|
||||
|
||||
// Eat attributes for testing
|
||||
#[test]
|
||||
fn ensure_fmt_does_not_panic() {
|
||||
let _ = format!(
|
||||
"{:?}, {}",
|
||||
NotSupportedError::new(),
|
||||
NotSupportedError::new().clone()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,13 @@
|
||||
//! Base types for a windowing library.
|
||||
//!
|
||||
//!
|
||||
//! This crate contains types, traits and basic functions from [`winit`] that are platform
|
||||
//! independent. It is intended to allow for other crates to build abstractions around [`winit`]
|
||||
//! without needing to pull in all of [`winit`]'s dependencies, as well as to provide an
|
||||
//! interface for alternative backends for [`winit`] to be constructed.
|
||||
//!
|
||||
//!
|
||||
//! [`winit`]: https://docs.rs/winit
|
||||
|
||||
#[cfg(any(not(feature = "std"), not(feature = "alloc")))]
|
||||
compile_error! { "no-std and no-alloc usage are not yet supported" }
|
||||
|
||||
pub mod error;
|
||||
|
||||
Reference in New Issue
Block a user