我有一些功能
impl<const N: usize> SomeType<N> {
fn some_func(&self, some_arg: &Pose3d64) -> &SomeType<N> {
// pass
}
}
Run Code Online (Sandbox Code Playgroud)
我想将此代码落地,以便我的同事可以在其之上进行构建,因此,这些方法的内部将不会被实现。当我这样做时,我会遇到编译时错误,例如error[E0308]: mismatched types. 有没有办法忽略这些?
有一个todo宏可以提供帮助。
或者也许unimplemented更适合您的目的?
impl<const N: usize> SomeType<N> {
fn some_func(&self, some_arg: &Pose3d64) -> &SomeType<N> {
todo!()
// or
// unimplemented!()
// or either with a message
// todo!("don't forget to implement some_func on SomeType")
// unimplemented!("SomeType cannot some_func")
}
}
Run Code Online (Sandbox Code Playgroud)
这两个宏都扩展为恐慌。由于恐慌永远不会返回,Rust 知道您永远不会从这样的函数中返回错误的类型,从而以运行时安全为代价来消除编译器错误。
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |