Skip to content

Commit

Permalink
Use add_submodule instead of add_wrapped as it's deprecated
Browse files Browse the repository at this point in the history
  • Loading branch information
YushiOMOTE committed Dec 12, 2020
1 parent b2b00b0 commit a4763c7
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 10 deletions.
4 changes: 2 additions & 2 deletions perde-core/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ pub mod prelude {
pub use crate::object::{Object, ObjectRef};
pub use crate::schema::{Schema, WithSchema};
pub use crate::{
bail, bail_type_err, bail_value_err, err, exception, impl_default_methods, method_fastcall,
method_varargs, module, submodule, type_err, value_err,
add_submodule, bail, bail_type_err, bail_value_err, err, exception, impl_default_methods,
method_fastcall, method_varargs, module, submodule, type_err, value_err,
};
}
23 changes: 19 additions & 4 deletions perde-core/src/methods.rs
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,26 @@ macro_rules! method_varargs {
};
}

#[macro_export]
macro_rules! add_submodule {
($module:ident) => {
|py: pyo3::Python<'_>, _: &str, m: &pyo3::types::PyModule| -> pyo3::PyResult<()> {
let submodule = $module(py)?;
m.add_submodule(submodule)
}
};
}

#[macro_export]
macro_rules! submodule {
($module:tt) => {
|_: pyo3::Python<'_>, _: &str, m: &pyo3::types::PyModule| -> pyo3::PyResult<()> {
m.add_wrapped(pyo3::wrap_pymodule!($module))
($module:tt, $($cls:expr),*) => {
pub fn $module(py: pyo3::Python<'_>) -> pyo3::PyResult<&pyo3::types::PyModule> {
let m = pyo3::types::PyModule::new(py, stringify!($module))?;
$({
let method = $cls;
method(py, concat!(stringify!($name), "\0"), m)?;
})*
Ok(m)
}
};
}
Expand Down Expand Up @@ -191,7 +206,7 @@ macro_rules! impl_default_methods {
}
}

module!(
submodule!(
$module_name,
exception!($exception_type),
method_varargs!(_loads, "loads", ""),
Expand Down
8 changes: 4 additions & 4 deletions perde/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,10 @@ pub extern "C" fn resolve(

module!(
perde,
submodule!(json),
submodule!(toml),
submodule!(yaml),
submodule!(msgpack),
add_submodule!(json),
add_submodule!(toml),
add_submodule!(yaml),
add_submodule!(msgpack),
exception!(Error),
method_fastcall!(resolve, "resolve", "")
);

0 comments on commit a4763c7

Please sign in to comment.