jsonrpsee/
macros.rs

1macro_rules! cfg_feature {
2	($feature:literal, $($item:item)*) => {
3		$(
4			#[cfg(feature = $feature)]
5			#[cfg_attr(docsrs, doc(cfg(feature = $feature)))]
6			$item
7		)*
8	}
9}
10
11macro_rules! cfg_client {
12	($($item:item)*) => {
13		$(
14			#[cfg(any(
15				feature = "jsonrpsee-http-client", feature = "jsonrpsee-wasm-client", feature = "jsonrpsee-ws-client",
16				feature = "client", feature = "async-client", feature = "client-core", feature = "async-wasm-client"
17			))]
18			$item
19		)*
20	}
21}
22
23macro_rules! cfg_http_client {
24	($($item:item)*) => {
25		cfg_feature!("jsonrpsee-http-client", $($item)*);
26	};
27}
28
29macro_rules! cfg_ws_client {
30	($($item:item)*) => {
31		cfg_feature!("jsonrpsee-ws-client", $($item)*);
32	};
33}
34
35macro_rules! cfg_wasm_client {
36	($($item:item)*) => {
37		cfg_feature!("jsonrpsee-wasm-client", $($item)*);
38	};
39}
40
41macro_rules! cfg_async_client {
42	($($item:item)*) => {
43		cfg_feature!("async-client", $($item)*);
44	};
45}
46
47macro_rules! cfg_client_transport {
48	($($item:item)*) => {
49		cfg_feature!("jsonrpsee-client-transport", $($item)*);
50	};
51}
52
53macro_rules! cfg_server {
54	($($item:item)*) => {
55		cfg_feature!("server", $($item)*);
56	}
57}
58
59macro_rules! cfg_server_core {
60	($($item:item)*) => {
61		cfg_feature!("server-core", $($item)*);
62	}
63}
64
65macro_rules! cfg_proc_macros {
66	($($item:item)*) => {
67		cfg_feature!("jsonrpsee-proc-macros", $($item)*);
68	};
69}
70
71macro_rules! cfg_types {
72	($($item:item)*) => {
73		cfg_feature!("jsonrpsee-types", $($item)*);
74	};
75}
76
77macro_rules! cfg_client_or_server {
78	($($item:item)*) => {
79		$(
80			#[cfg(any(
81				feature = "jsonrpsee-http-client", feature = "jsonrpsee-wasm-client", feature = "jsonrpsee-ws-client",
82				feature = "client", feature = "async-client", feature = "async-wasm-client",
83				feature = "client-core", feature = "server", feature = "server-core"
84			))]
85			$item
86		)*
87	}
88}