小编mil*_*lck的帖子

如何将示例代码添加到私有方法的文档中?

在记录模块内部函数时,我想在其中放入一些示例代码:

// in private module foo

/// This functions does something etc.
/// Example:
/// ```
/// use mylib::foo::my_func;
/// assert_eq!(my_func(2), 3);
/// ```
fn my_func(x: i32) -> i32 {
    3
}
Run Code Online (Sandbox Code Playgroud)

运行cargo test不起作用,因为它foo是私有的(并且应该是私有的),所以我得到了很多失败的测试。

我读过关于ignore在代码片段上放置标签的内容,但这似乎不是一个好的解决方案,因为我更喜欢检查代码。

处理这种情况的正确方法是什么?

rust rust-cargo

5
推荐指数
0
解决办法
107
查看次数

如何摆脱 wasm_bindgen 包装结构中的生命周期

目前我有一些类似于以下的代码:

// Lifetime of child is enforced to be valid as far as Parent is valid
struct Child<'a> {
    some_data : i32,
    phantom_lifetime: PhantomData<&'a Parent>
}

struct Parent {

}

#[wasm_bindgen]
pub struct Foo<'a> {
    parent: Parent,
    children: Vec<Child<'a>>
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是我必须摆脱生命周期,Foo因为wasm_bindgen不允许这样做。

直观上,生命周期应该仅通过 struct 的创建来强制执行Foo。然而编译器还是要求我提供生命周期。

无论如何,我不知道如何实现这一点。有人可以帮助我吗?

rust wasm-bindgen

5
推荐指数
0
解决办法
864
查看次数

如何使用代理处理 vue cli 开发服务器中的重定向?

我的项目设置由一个 vue 应用程序组成,前端有多个页面,后端有一个 Flask。

对于我的开发设置,我使用devServer.proxy以下设置vue.config.js

module.exports = {
  devServer: {
    proxy: "http://localhost:5000"
  }
}
Run Code Online (Sandbox Code Playgroud)

这对于几乎所有请求都工作得很好。当后端服务器发出重定向请求时,就会出现问题,该请求显然指向后端的 URL。然而,在开发设置中,此页面尚不存在,因为它由 webpack 开发服务器提供服务。(我正在测试一个登录页面,该页面在身份验证成功后重定向到实际内容)

最终我想重写重定向以指向 webpack 服务器上的相应 URL。(好吧,也欢迎任何其他可行的解决方案)

有人知道如何做到这一点吗?

vuejs2 vue-cli-3

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

我可以匹配所有具有相同值形状的枚举变体吗?

我有一个枚举:

enum MyEnum {
    A(i32),
    B(i32),
    C,
    D,
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我可以匹配A,并B与像这样同时:

let a = MyEnum::A(1);
match a {
    _(n) => { // do something for all variants which have one i32 value
    }
    _ => { // ignore the rest
    }
};
Run Code Online (Sandbox Code Playgroud)

有什么办法可以做到这一点吗?我是否必须匹配所有变体并为每个变体应用相同的“主体”?

enums pattern-matching rust

3
推荐指数
1
解决办法
1155
查看次数