gha_main_proc_macro/
lib.rs

1#![doc = include_str!("../README.md")]
2
3use gha_main_core::gha_main_core;
4use proc_macro::TokenStream;
5use proc_macro_error::proc_macro_error;
6
7/// Add this macro to your `main()` function to return outputs and errors to
8/// the action runner
9///
10/// Example usage:
11/// ```rust
12/// use gha_main::{gha_main, gha_result, GitHubActionResult};
13///
14/// #[gha_main]
15/// fn main() -> GitHubActionResult {
16///     let parsed = "5".parse::<i32>()?;
17///     gha_result!(parsed);
18///     Ok(())
19/// }
20/// ```
21#[proc_macro_attribute]
22#[proc_macro_error]
23pub fn gha_main(args: TokenStream, item: TokenStream) -> TokenStream {
24    gha_main_core(args.into(), item.into()).into()
25}