From 5e6ea230ab98f4a2761876ebe1646c13588e36b1 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 2 Apr 2023 01:57:26 +0000 Subject: feat(response): add 'auto' functionality to binary_success raw --- src/response/macros.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src') diff --git a/src/response/macros.rs b/src/response/macros.rs index e04b0ee..f49da2d 100644 --- a/src/response/macros.rs +++ b/src/response/macros.rs @@ -61,9 +61,41 @@ macro_rules! binary_success { ::windmark::Response::binary_success($body, $mime) }) }; + ($body:expr) => {{ + #[cfg(not(feature = "auto-deduce-mime"))] + compile_error!( + "`binary_success` without a MIME type requires the `auto-deduce-mime` \ + feature to be enabled" + ); + + ::std::boxed::Box::new(|_| { + #[cfg(feature = "auto-deduce-mime")] + return ::windmark::Response::binary_success_auto($body); + + // Suppress item not found warning + #[cfg(not(feature = "auto-deduce-mime"))] + ::windmark::Response::binary_success($body, "application/octet-stream") + }) + }}; ($context:ident, $body:expr, $mime:expr) => { ::std::boxed::Box::new(|$context| { ::windmark::Response::binary_success($body, $mime) }) }; + ($context:ident, $body:expr) => {{ + #[cfg(not(feature = "auto-deduce-mime"))] + compile_error!( + "`binary_success` without a MIME type requires the `auto-deduce-mime` \ + feature to be enabled" + ); + + ::std::boxed::Box::new(|$context| { + #[cfg(feature = "auto-deduce-mime")] + return ::windmark::Response::binary_success_auto($body); + + // Suppress item not found warning + #[cfg(not(feature = "auto-deduce-mime"))] + ::windmark::Response::binary_success($body, "application/octet-stream") + }) + }}; } -- cgit v1.2.3