- replace from_py_object with derive macro
This commit is contained in:
1 parent
e58b40f9cc
commit
f89e60075c
5 files changed
+70
-50
No files matched your search
@@ -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"
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user