custom_utils/util_txrx/
mod.rs1#[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}