monoio_macros/
lib.rs

1#![allow(clippy::needless_doctest_main)]
2//! Macros for use with Monoio
3
4// This `extern` is required for older `rustc` versions but newer `rustc`
5// versions warn about the unused `extern crate`.
6// Copyright (c) 2021 Tokio Contributors, licensed under the MIT license.
7#[allow(unused_extern_crates)]
8extern crate proc_macro;
9
10mod entry;
11mod select;
12
13use proc_macro::TokenStream;
14#[proc_macro_attribute]
15pub fn main(args: TokenStream, item: TokenStream) -> TokenStream {
16    entry::main(args, item)
17}
18
19#[proc_macro_attribute]
20pub fn test(args: TokenStream, item: TokenStream) -> TokenStream {
21    entry::test(args, item)
22}
23
24#[proc_macro_attribute]
25pub fn test_all(args: TokenStream, item: TokenStream) -> TokenStream {
26    entry::test_all(args, item)
27}
28
29/// Implementation detail of the `select!` macro. This macro is **not** intended
30/// to be used as part of the public API and is permitted to change.
31#[proc_macro]
32#[doc(hidden)]
33pub fn select_priv_declare_output_enum(input: TokenStream) -> TokenStream {
34    select::declare_output_enum(input)
35}