codex_app_server_sdk_macros/
lib.rs1use proc_macro::TokenStream;
2use quote::quote;
3use syn::{DeriveInput, parse_macro_input};
4
5#[proc_macro_derive(OpenAiSerializable)]
6pub fn derive_openai_serializable(input: TokenStream) -> TokenStream {
7 let input = parse_macro_input!(input as DeriveInput);
8 let ident = input.ident;
9 let generics = input.generics;
10 let (impl_generics, ty_generics, where_clause) = generics.split_for_impl();
11
12 TokenStream::from(quote! {
13 impl #impl_generics ::codex_app_server_sdk::OpenAiSerializable for #ident #ty_generics #where_clause {
14 fn openai_output_schema() -> ::codex_app_server_sdk::__private_serde_json::Value {
15 ::codex_app_server_sdk::openai_json_schema_for::<Self>()
16 }
17 }
18 })
19}