我能找到方法来检测Rust 是否给了我一个错误,

assert!(fs::metadata(path).is_err())

source

如何测试特定错误?

推荐答案

如果返回的Err变量为impl Debug + PartialEq,则可以直接比较:

#[derive(Debug, PartialEq)]
enum MyError {
    TooBig,
    TooSmall,
}

pub fn encode(&self, decoded: &'a Bytes) -> Result<&'a Bytes, MyError> {
    if decoded.len() > self.length() as usize {
        Err(MyError::TooBig)
    } else {
        Ok(&decoded)
    }
}
assert_eq!(fixed.encode(&[1]), Err(MyError::TooBig));

Rust相关问答推荐

为什么Tauri要修改被调用函数的参数名称?

使用nom将任何空白、制表符、白线等序列替换为单个空白

如何在rust中有条件地分配变量?

在Rust中,有没有一种方法让我定义两个 struct ,其中两个都遵循标准 struct ?

Rust:跨多个线程使用hashmap Arc和rwlock

文档示例需要导入相关的 struct ,但仅在运行测试时.这是故意的行为吗?

如何在Rust中表示仅具有特定大小的数组

铁 rust ,我的模块介绍突然遇到了一个问题

获取与父字符串相关的&;str的原始片段

你能在Rust中弃用一个属性吗?

使用 pyo3 将 Rust 转换为 Python 自定义类型

将引用移动到线程中

为什么带有生命周期指定的方法不能被调用两次?

一个函数调用会产生双重borrow 错误,而另一个则不会

Rust Serde 为 Option:: 创建反序列化器

将原始可变指针传递给 C FFI 后出现意外值

如何解析 Rust 中的 yaml 条件字段?

在 FFI 的上下文中,未初始化是什么意思?

为实现特征的所有类型实现显示

为什么 u64::trailing_zeros() 在无分支工作时生成分支程序集?