diff --git a/spdlog/Cargo.toml b/spdlog/Cargo.toml index 13760a24..bff3e065 100644 --- a/spdlog/Cargo.toml +++ b/spdlog/Cargo.toml @@ -50,7 +50,6 @@ log = { version = "0.4.8", optional = true } once_cell = "1.16.0" spdlog-macros = { version = "0.1.0", path = "../spdlog-macros" } spin = "0.9.8" -static_assertions = "1.1.0" thiserror = "1.0.37" [target.'cfg(windows)'.dependencies] diff --git a/spdlog/src/error.rs b/spdlog/src/error.rs index 98b84b64..9ede2159 100644 --- a/spdlog/src/error.rs +++ b/spdlog/src/error.rs @@ -6,10 +6,10 @@ use std::{ }; use atomic::Atomic; -use static_assertions::const_assert; use thiserror::Error; pub use crate::env_level::EnvLevelError; +use crate::utils::const_assert; #[cfg(feature = "multi-thread")] use crate::{sink::Task, RecordOwned}; diff --git a/spdlog/src/level.rs b/spdlog/src/level.rs index 5fa64e12..92afaff4 100644 --- a/spdlog/src/level.rs +++ b/spdlog/src/level.rs @@ -72,7 +72,7 @@ pub enum Level { cfg_if! { if #[cfg(test)] { - static_assertions::const_assert!(atomic::Atomic::::is_lock_free()); + crate::utils::const_assert!(atomic::Atomic::::is_lock_free()); } } @@ -224,15 +224,12 @@ pub enum LevelFilter { cfg_if! { if #[cfg(test)] { - static_assertions::const_assert!(atomic::Atomic::::is_lock_free()); - static_assertions::const_assert_eq!( - std::mem::size_of::() * 2, - std::mem::size_of::() - ); - static_assertions::const_assert_eq!( - std::mem::align_of::() * 2, - std::mem::align_of::() - ); + use std::mem::{align_of, size_of}; + use crate::utils::const_assert; + + const_assert!(atomic::Atomic::::is_lock_free()); + const_assert!(size_of::() * 2 == size_of::()); + const_assert!(align_of::() * 2 == align_of::()); } } diff --git a/spdlog/src/sink/helper.rs b/spdlog/src/sink/helper.rs index aec5dd62..71bd374d 100644 --- a/spdlog/src/sink/helper.rs +++ b/spdlog/src/sink/helper.rs @@ -11,8 +11,7 @@ pub(crate) type SinkErrorHandler = Atomic>; cfg_if! { if #[cfg(test)] { - use static_assertions::const_assert; - const_assert!(Atomic::::is_lock_free()); + crate::utils::const_assert!(Atomic::::is_lock_free()); } } diff --git a/spdlog/src/utils.rs b/spdlog/src/utils.rs index 170842fc..46212fc4 100644 --- a/spdlog/src/utils.rs +++ b/spdlog/src/utils.rs @@ -25,3 +25,14 @@ pub fn open_file(path: impl AsRef, truncate: bool) -> Result { .open(path) .map_err(Error::OpenFile) } + +// Credits `static_assertions` crate +macro_rules! const_assert { + ( $cond:expr $(,)? ) => { + const _: [(); 0 - !{ + const EVALUATED: bool = $cond; + EVALUATED + } as usize] = []; + }; +} +pub(crate) use const_assert;