Rust Pyo3绑定:如何在泛型Rust类型上重用python方法
我有一个比这更复杂的问题。但我认为这会使它崩溃。我有一些泛型结构,它有三个构造函数来获得一个具体类型的结构。除了构造函数之外,它们都有相同的泛型方法。我想要的是这样的东西:Rust Pyo3绑定:如何在泛型Rust类型上重用python方法,python,rust,pyo3,Python,Rust,Pyo3,我有一个比这更复杂的问题。但我认为这会使它崩溃。我有一些泛型结构,它有三个构造函数来获得一个具体类型的结构。除了构造函数之外,它们都有相同的泛型方法。我想要的是这样的东西: 使用pyo3::prelude::*; #[pyclass] 结构AnyVec{ 维克:维克, } //一般方法 #[方法] impl AnyVec{ fn推送(和多个自身,v:T){ 自矢量推力(v) } fn pop(&mut self,v:T)->T{ self.vec_u.pop() } } #[方法] impl A
使用pyo3::prelude::*;
#[pyclass]
结构AnyVec{
维克:维克,
}
//一般方法
#[方法]
impl AnyVec{
fn推送(和多个自身,v:T){
自矢量推力(v)
}
fn pop(&mut self,v:T)->T{
self.vec_u.pop()
}
}
#[方法]
impl AnyVec{
#[新]
fn new()->Self{
AnyVec{vec\:vec![]}
}
}
#[方法]
impl AnyVec{
#[新]
fn new()->Self{
AnyVec{vec\:vec![]}
}
}
当我试图编译这个的时候pyo3
警告我它不能使用泛型<代码>错误:#[pyclass]不能具有泛型参数
是否可以创建某种类型的泛型基类
,具体类型从中继承
完成;这是我的货物。toml
:
[package]
name = "example"
edition = "2018"
[dependencies]
pyo3 = { version="0.9.0-alpha.1", features = ["extension-module"] }
[lib]
name = "example"
crate-type = ["cdylib"]
如果要在python中使用
AnyVec
,它应该包含Vec
,而不是Vec
。你还需要实现。嗯。。也许这不是最好的例子。这些泛型类型不是python类型。但锈菌类型不同。我有一个通用包装器类,它可以由实现相同特性的4个不同结构具体化。如果python中要使用AnyVec
,它应该包含Vec
,而不是Vec
。你还需要实现。嗯。。也许这不是最好的例子。这些泛型类型不是python类型。但锈菌类型不同。我有一个通用包装器类,它可以由4个实现相同特性的不同结构具体化。