diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/response/macros.rs | 32 |
1 files changed, 32 insertions, 0 deletions
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") + }) + }}; } |