在记录模块内部函数时,我想在其中放入一些示例代码:
// 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在代码片段上放置标签的内容,但这似乎不是一个好的解决方案,因为我更喜欢检查代码。
处理这种情况的正确方法是什么?
目前我有一些类似于以下的代码:
// 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。然而编译器还是要求我提供生命周期。
无论如何,我不知道如何实现这一点。有人可以帮助我吗?
我的项目设置由一个 vue 应用程序组成,前端有多个页面,后端有一个 Flask。
对于我的开发设置,我使用devServer.proxy以下设置vue.config.js:
module.exports = {
devServer: {
proxy: "http://localhost:5000"
}
}
Run Code Online (Sandbox Code Playgroud)
这对于几乎所有请求都工作得很好。当后端服务器发出重定向请求时,就会出现问题,该请求显然指向后端的 URL。然而,在开发设置中,此页面尚不存在,因为它由 webpack 开发服务器提供服务。(我正在测试一个登录页面,该页面在身份验证成功后重定向到实际内容)
最终我想重写重定向以指向 webpack 服务器上的相应 URL。(好吧,也欢迎任何其他可行的解决方案)
有人知道如何做到这一点吗?
我有一个枚举:
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)
有什么办法可以做到这一点吗?我是否必须匹配所有变体并为每个变体应用相同的“主体”?