custom_utils/util_txrx/
mod.rs

1#[macro_export]
2macro_rules! tx {
3    ( $x:expr, $y:expr) => {
4        if $x.send($y).is_err() {
5            error!("fail to send data!");
6            bail!("fail to send data!")
7        }
8    };
9    ($x:expr, $y:expr, $msg:expr) => {
10        if $x.send($y).is_err() {
11            error!($msg);
12            bail!($msg)
13        }
14    };
15}
16#[macro_export]
17macro_rules! tx_async {
18    ( $x:expr, $y:expr) => {
19        if $x.send($y).await.is_err() {
20            error!("fail to send data!");
21            bail!("fail to send data!")
22        }
23    };
24    ($x:expr, $y:expr, $msg:expr) => {
25        if $x.send($y).await.is_err() {
26            error!($msg);
27            bail!($msg)
28        }
29    };
30}
31#[macro_export]
32macro_rules! rx {
33    ( $x:expr) => {
34        match $x.recv() {
35            Ok(val) => val,
36            Err(e) => {
37                error!("{:?}", e);
38                Err(e)?
39            }
40        }
41    };
42    ( $x:expr, $msg:expr) => {
43        match $x.recv() {
44            Ok(val) => val,
45            Err(_) => {
46                error!($msg);
47                bail!($msg);
48            }
49        }
50    };
51}
52
53#[macro_export]
54macro_rules! rx_async {
55    ( $x:expr) => {
56        match $x.recv().await {
57            Some(val) => val,
58            None => {
59                error!("receive none");
60                bail!("receive none");
61            }
62        }
63    };
64    ( $x:expr, $msg:expr) => {
65        match $x.recv().await {
66            Some(val) => val,
67            None => {
68                error!($msg);
69                bail!($msg);
70            }
71        }
72    };
73}