Files
rust-lib/crates/into_response_derive/src/derive.rs
2024-08-19 23:15:55 +02:00

22 lines
578 B
Rust

use proc_macro::TokenStream;
use quote::quote;
use syn::DeriveInput;
// TODO derive generic types
pub fn into_response_derive_impl(input: DeriveInput) -> TokenStream {
let name = &input.ident;
let expanded = quote! {
impl axum::response::IntoResponse for #name {
fn into_response(self) -> axum::response::Response {
let version = env!("CARGO_PKG_VERSION");
lib::serde::response::BaseResponse::new(version, self)
.into_response()
}
}
};
TokenStream::from(expanded)
}