首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyo3可选择为锈病结构生成python绑定

pyo3可选择为锈病结构生成python绑定
EN

Stack Overflow用户
提问于 2022-05-19 04:42:22
回答 1查看 95关注 0票数 1

我在代码中定义了几个结构,如果在机箱上启用了某个功能,我也希望为这些结构生成Python绑定。现在我不能正确地得到它。假设我有一个结构MyStruct,我想为其生成可选的Python。

我试过以下几种方法

代码语言:javascript
复制
cfg_if! {
    if #[cfg(feature = "python-bindings")] {
        #[pyclass]
    } 
    else {
    }  
}
struct MyStruct{
   value: i32
}

我只想在启用了#[pyclass] ( feature python-bindings )而不是其他情况下添加python-bindings

如果没有启用python-bindings,这很好。但是,如果我使用--features python-bindings进行编译,则会得到以下错误。

error: expected item after attributes

我尽量不想重复代码。喜欢

代码语言:javascript
复制
cfg_if! {
    if #[cfg(feature = "python-bindings")] {
        #[pyclass]
        struct MyStruct{
           value: i32
        }
    } 
    else {
        struct MyStruct{
            value: i32
        }
    }  
}

有没有一种不重复代码的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-19 04:44:34

是的,用#[cfg_attr]

代码语言:javascript
复制
#[cfg_attr(feature = "python-bindings", pyclass)]
struct MyStruct {
    value: i32
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72298740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档