小编tun*_*ten的帖子

如何在结构中分配 impl 特征?

考虑一些不可访问但实现 API 特征的结构 (HiddenInaccessibleStruct)。获取此隐藏类型的对象的唯一方法是调用返回此类型的不透明实现的函数。另一个结构体拥有某种类型,它利用了这个 API 特征。目前,似乎无法在fn new(). 下面的代码也可以在 Rust Playgrounds中找到。

// -- public api 
trait Bound {
    fn call(&self) -> Self;
}

// this is not visible

#[derive(Default)]
struct HiddenInaccessibleStruct;

impl Bound for HiddenInaccessibleStruct {
    fn call(&self) -> Self { }
}

// -- public api
pub fn load() -> impl Bound {
    HiddenInaccessibleStruct::default()
}

struct Abc<T> where T : Bound {
    field : T
}

impl<T> Abc<T> where T : Bound {
    
    pub fn new() -> …
Run Code Online (Sandbox Code Playgroud)

rust

5
推荐指数
1
解决办法
2820
查看次数

标签 统计

rust ×1