有没有办法忽略不完整函数的编译时错误?

Jus*_*ang 1 rust

我有一些功能

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. 有没有办法忽略这些?

Ada*_*ith 5

有一个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 知道您永远不会从这样的函数中返回错误的类型,从而以运行时安全为代价来消除编译器错误。