feat: FromPyFromStr and ToStrToPy macros YAY

This commit is contained in:
J / Jacob Babich
2026-07-09 01:35:49 -04:00
parent c637ad2d76
commit 9a9cefee37
25 changed files with 343 additions and 394 deletions

View File

@@ -9,3 +9,5 @@ proc-macro = true
[dependencies]
python-utils-macros-impl = { path = "../python-utils-macros-impl" }
quote = { workspace = true }
syn = { workspace = true }

View File

@@ -1,6 +1,15 @@
use proc_macro::proc_macro_derive;
use proc_macro::TokenStream;
use quote::quote;
use syn::parse_macro_input;
#[proc_macro_derive(PyFromStr)]
pub fn py_from_str(input: TokenStream) -> TokenStream {
python_utils_macros_impl::py_from_str(input.into()).into()
#[proc_macro_derive(FromPyFromStr)]
pub fn from_py_from_str(input: TokenStream) -> TokenStream {
let item: python_utils_macros_impl::FromPyFromStr = parse_macro_input!(input);
quote! { #item }.into()
}
#[proc_macro_derive(ToStrToPy)]
pub fn to_str_to_py(input: TokenStream) -> TokenStream {
let item: python_utils_macros_impl::ToStrToPy = parse_macro_input!(input);
quote! { #item }.into()
}