- replace from_py_object with derive macro

This commit is contained in:
Wim Pomp committed 2026-10-03 19:18:49 +02:00
1 parent e58b40f9cc
commit f89e60075c
5 files changed
+70 -50

No files matched your search

+7 -7
View File
@@ -1,13 +1,13 @@
[package]
name = "ome-metadata-derive"
version = "0.6.0"
edition = "2024"
rust-version = "1.88.0"
authors = ["Wim Pomp <w.pomp@nki.nl>"]
license = "MIT OR Apache-2.0"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Derive macros for ome-metadata."
homepage = "https://git.pomppervova.nl/wim/ome-metadata"
repository = "https://git.pomppervova.nl/wim/ome-metadata"
documentation = "https://docs.rs/ome-metadata-derive"
readme = "README.md"
+20
View File
@@ -94,6 +94,16 @@ pub fn ome_metadata_derive_enum(input: TokenStream) -> TokenStream {
let name = input.ident;
let expanded = quote! {
impl<'a, 'py> ::pyo3::FromPyObject<'a, 'py> for #name {
type Error = ::pyo3::pyclass::PyClassGuardError<'a, 'py>;
fn extract(
obj: ::pyo3::Borrowed<'a, 'py, ::pyo3::PyAny>,
) -> ::std::result::Result<Self, Self::Error> {
Ok(*obj.extract::<::pyo3::PyClassGuard<'a, #name>>()?)
}
}
impl PyDisplay for #name {
fn py_str(&self) -> String {
format!("{}", self)
@@ -147,6 +157,16 @@ pub fn ome_metadata_derive_unit(input: TokenStream) -> TokenStream {
let name = input.ident;
let expanded = quote! {
impl<'a, 'py> ::pyo3::FromPyObject<'a, 'py> for #name {
type Error = ::pyo3::pyclass::PyClassGuardError<'a, 'py>;
fn extract(
obj: ::pyo3::Borrowed<'a, 'py, ::pyo3::PyAny>,
) -> ::std::result::Result<Self, Self::Error> {
Ok(*obj.extract::<::pyo3::PyClassGuard<'a, #name>>()?)
}
}
impl PyDisplay for #name {
fn py_str(&self) -> String {
format!("{}", self)