小编kri*_*ant的帖子

从libclang的CXType中删除CV类型限定符

我使用libclang来解析源文件并引用某些类型CXType,比如它是" const std::__1::basic_string<char>"(如报告所述 clang_getTypeSpelling).如何获得相同类型的引用但没有const限定符?

libclang

11
推荐指数
1
解决办法
99
查看次数

如何限制Cargo.toml中的测试线程数?

我有共享公共资源的测试,不能同时执行.这些测试失败了cargo test,但与之合作RUST_TEST_THREADS=1 cargo test.

我可以修改测试以等待全局互斥,但如果有任何更简单的方法强制cargo为我设置此环境变量,我不想让它们混乱.

testing rust rust-cargo

8
推荐指数
1
解决办法
2095
查看次数

如何将拥有的装箱结构引用到其他拥有的结构

我拥有Engine它,Worker并且我想Engine提供一些 API 作为Worker对特征的引用。API 实现是使用 分配Box并由 拥有的Engine,因此只要工作进程还活着,对它的引用就是稳定且有效的。

但我不明白如何用 Rust 表达它。

我已阅读为什么不能在同一结构中存储值和对该值的引用?我明白为什么我不能传递对拥有价值的引用。但是,就我而言,我传递的不是对拥有值本身的引用,而是对装箱值的引用,该值不会被移动,因此对它的引用必须是稳定的。

这是非工作原型:

trait EngineApi {
    fn foo(&self);
}

struct Worker<'a> {
    api: &'a EngineApi,
}
impl<'a> Worker<'a> {
    fn new(engine_api: &'a EngineApi) -> Self {
        Worker { api: engine_api }
    }
}

struct Api;
impl EngineApi for Api {
    fn foo(&self) {} 
}

struct Engine<'a> {
    api: Box<Api>,
    worker: Box<Worker<'a>>,
}

impl<'a> Engine<'a> {
    fn new() -> …
Run Code Online (Sandbox Code Playgroud)

lifetime rust

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

标签 统计

rust ×2

libclang ×1

lifetime ×1

rust-cargo ×1

testing ×1