Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/stdx/src/macros.rs')
| -rw-r--r-- | crates/stdx/src/macros.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/crates/stdx/src/macros.rs b/crates/stdx/src/macros.rs index 8fec7229cf..85d9008fe1 100644 --- a/crates/stdx/src/macros.rs +++ b/crates/stdx/src/macros.rs @@ -14,6 +14,22 @@ macro_rules! format_to { }; } +/// Appends formatted string to a `String` and returns the `String`. +/// +/// Useful for folding iterators into a `String`. +#[macro_export] +macro_rules! format_to_acc { + ($buf:expr, $lit:literal $($arg:tt)*) => { + { + use ::std::fmt::Write as _; + // We can't do ::std::fmt::Write::write_fmt($buf, format_args!($lit $($arg)*)) + // unfortunately, as that loses out on autoref behavior. + _ = $buf.write_fmt(format_args!($lit $($arg)*)); + $buf + } + }; +} + /// Generates `From` impls for `Enum E { Foo(Foo), Bar(Bar) }` enums /// /// # Example |