From e87fe9aaf267611d195ee8360c2097c4e876b580 Mon Sep 17 00:00:00 2001 From: Ben Frankel Date: Thu, 1 Aug 2024 01:18:08 -0700 Subject: [PATCH] Move macros to newly published `tiny_bail` --- Cargo.lock | 11 ++++++ Cargo.toml | 1 + src/util.rs | 7 +--- src/util/macros.rs | 97 ---------------------------------------------- 4 files changed, 14 insertions(+), 102 deletions(-) delete mode 100644 src/util/macros.rs diff --git a/Cargo.lock b/Cargo.lock index 99e3d7a..23e5e35 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1515,6 +1515,7 @@ dependencies = [ "serde", "strum", "tap", + "tiny_bail", "tracing", ] @@ -4744,6 +4745,15 @@ dependencies = [ "strict-num", ] +[[package]] +name = "tiny_bail" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9497bf0b7812c3383d61716fc8e6b61b0b5fdfe8786375ed633bfef125dcd4d" +dependencies = [ + "tracing", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -4793,6 +4803,7 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", diff --git a/Cargo.toml b/Cargo.toml index c70aaba..29c06c5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -64,6 +64,7 @@ ron = "0.8" serde = "1" strum = { version = "0.26", features = ["derive"] } tap = "1" +tiny_bail = "0.1" tracing = { version = "0.1", features = [ "max_level_debug", "release_max_level_warn", diff --git a/src/util.rs b/src/util.rs index 45b251b..7e99530 100644 --- a/src/util.rs +++ b/src/util.rs @@ -4,13 +4,14 @@ pub mod config; pub mod late_despawn; -pub mod macros; pub mod patch; pub mod selection; pub mod texture_atlas_grid; pub mod time; pub mod prelude { + pub use tiny_bail::prelude::*; + pub use super::config::Config; pub use super::config::ConfigHandle; pub use super::config::ConfigRef; @@ -27,10 +28,6 @@ pub mod prelude { pub use super::patch::WorldSpawnWithExt as _; pub use super::selection::Selection; pub use super::texture_atlas_grid::TextureAtlasGrid; - pub use crate::c; - pub use crate::cq; - pub use crate::r; - pub use crate::rq; } use bevy::prelude::*; diff --git a/src/util/macros.rs b/src/util/macros.rs deleted file mode 100644 index 64023d5..0000000 --- a/src/util/macros.rs +++ /dev/null @@ -1,97 +0,0 @@ -/// Helper trait to be generic over `Option` and `Result`. -pub trait Success { - fn success(self) -> Option; -} - -impl Success for Option { - fn success(self) -> Option { - self - } -} - -impl Success for Result { - fn success(self) -> Option { - self.ok() - } -} - -/// Warn about a failed unwrap. -#[macro_export] -macro_rules! warn_unwrap { - ($expr:expr) => { - warn!( - "Unwrap failed at {}:{}:{}: `{}`", - file!(), - line!(), - column!(), - stringify!($expr), - ); - }; -} - -/// Unwrap or warn and return. -#[macro_export] -macro_rules! r { - ($return:expr, $expr:expr $(,)?) => { - match $crate::util::macros::Success::success($expr) { - Some(x) => x, - None => { - $crate::warn_unwrap!($expr); - return $return; - }, - } - }; - - ($expr:expr $(,)?) => { - match $crate::util::macros::Success::success($expr) { - Some(x) => x, - None => { - $crate::warn_unwrap!($expr); - return; - }, - } - }; -} - -/// Unwrap or return quietly. -#[macro_export] -macro_rules! rq { - ($return:expr, $expr:expr $(,)?) => { - match $crate::util::macros::Success::success($expr) { - Some(x) => x, - None => return $return, - } - }; - - ($expr:expr $(,)?) => { - match $crate::util::macros::Success::success($expr) { - Some(x) => x, - None => return, - } - }; -} - -/// Unwrap or warn and continue. -#[macro_export] -macro_rules! c { - ($expr:expr) => { - match $crate::util::macros::Success::success($expr) { - Some(x) => x, - None => { - $crate::warn_unwrap!($expr); - continue; - }, - } - }; -} - -/// Unwrap or continue quiety. -#[macro_export] -macro_rules! cq { - ($expr:expr) => { - match $crate::util::macros::Success::success($expr) { - Some(x) => x, - None => continue, - } - }; -}