actix_helper_macros/
lib.rs1extern crate actix_web;
2extern crate serde;
3
4extern crate actix_proc_macros;
5pub use actix_proc_macros::*;
6
7#[allow(type_alias_bounds)] pub type ResponderResult<T: serde::Serialize> = Result<Response<T>, Box<dyn std::error::Error>>;
9
10pub enum Response<T: serde::Serialize> {
11 Json(T),
12 Text(String),
13 Builder(actix_web::HttpResponseBuilder),
14 Complete(actix_web::HttpResponse)
15}
16
17#[macro_export]
18macro_rules! code {
19 ($code: ident) => { ::actix_helper_macros::Response::Builder(::actix_web::HttpResponse::$code()) };
20}
21
22#[macro_export]
23macro_rules! text {
24 ($val: expr) => { ::actix_helper_macros::Response::Text($val.to_string()) };
25}
26
27#[macro_export]
28macro_rules! json {
29 ($val: expr) => { ::actix_helper_macros::Response::Json($val) };
30}
31
32#[macro_export]
33macro_rules! response {
34 ($response: expr) => { ::actix_helper_macros::Response::Complete($response) };
35}
36
37#[macro_export]
38macro_rules! or_404 {
39 ($item: expr) => {
40 match $item {
41 None => { return Ok(code!(NotFound)) }
42 Some(v) => v
43 }
44 }
45}
46