aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to 'crates')
-rw-r--r--crates/stdx/src/lib.rs21
-rw-r--r--crates/stdx/src/macros.rs19
2 files changed, 21 insertions, 19 deletions
diff --git a/crates/stdx/src/lib.rs b/crates/stdx/src/lib.rs
index 3b605c79d..988853ed2 100644
--- a/crates/stdx/src/lib.rs
+++ b/crates/stdx/src/lib.rs
@@ -1,30 +1,13 @@
1//! Missing batteries for standard libraries. 1//! Missing batteries for standard libraries.
2use std::{cell::Cell, fmt, time::Instant}; 2use std::{cell::Cell, fmt, time::Instant};
3 3
4mod macros;
5
4#[inline(always)] 6#[inline(always)]
5pub fn is_ci() -> bool { 7pub fn is_ci() -> bool {
6 option_env!("CI").is_some() 8 option_env!("CI").is_some()
7} 9}
8 10
9#[macro_export]
10macro_rules! eprintln {
11 ($($tt:tt)*) => {{
12 if $crate::is_ci() {
13 panic!("Forgot to remove debug-print?")
14 }
15 std::eprintln!($($tt)*)
16 }}
17}
18
19/// Appends formatted string to a `String`.
20#[macro_export]
21macro_rules! format_to {
22 ($buf:expr) => ();
23 ($buf:expr, $lit:literal $($arg:tt)*) => {
24 { use ::std::fmt::Write as _; let _ = ::std::write!($buf, $lit $($arg)*); }
25 };
26}
27
28pub trait SepBy: Sized { 11pub trait SepBy: Sized {
29 /// Returns an `impl fmt::Display`, which joins elements via a separator. 12 /// Returns an `impl fmt::Display`, which joins elements via a separator.
30 fn sep_by<'a>(self, sep: &'a str) -> SepByBuilder<'a, Self>; 13 fn sep_by<'a>(self, sep: &'a str) -> SepByBuilder<'a, Self>;
diff --git a/crates/stdx/src/macros.rs b/crates/stdx/src/macros.rs
new file mode 100644
index 000000000..0f7690a67
--- /dev/null
+++ b/crates/stdx/src/macros.rs
@@ -0,0 +1,19 @@
1//! Convenience macros.
2#[macro_export]
3macro_rules! eprintln {
4 ($($tt:tt)*) => {{
5 if $crate::is_ci() {
6 panic!("Forgot to remove debug-print?")
7 }
8 std::eprintln!($($tt)*)
9 }}
10}
11
12/// Appends formatted string to a `String`.
13#[macro_export]
14macro_rules! format_to {
15 ($buf:expr) => ();
16 ($buf:expr, $lit:literal $($arg:tt)*) => {
17 { use ::std::fmt::Write as _; let _ = ::std::write!($buf, $lit $($arg)*); }
18 };
19}