rust中的thiserror详细理解

复制代码
use anyhow::{bail, Context, Error, Result};
use std::{boxed, fs};
use std::io::Read;
use thiserror::Error;

// #[derive(Clone, Debug, Eq, Error, PartialEq)]
// #[error("Found no username in {0}")]
#[derive(Debug,Error)]
#[error("Found no username in {0}")]
struct EmptyUsernameError(String);

fn read_username(path: &str) ->Box<dyn std::error::Error>{

        return Box::new(EmptyUsernameError(path.to_string()));

}

fn main() {
    //fs::write("config.dat", "").unwrap();
    println!("{:?}", read_username("config.dat")) ;
}

结合https://docs.rs/thiserror/latest/thiserror/ 一起看。

#derive(Debug,Error) #error("Found no username in {0}")

这两个缺一不可

相关推荐
花和满楼8 分钟前
K8s 1.36 ImageVolume GA:OCI 镜像不再只能跑容器
java·容器·kubernetes
独孤留白10 分钟前
从C到Rust:堆内存,数据如何逃逸栈的约束?
rust
头茬韭菜13 分钟前
3.9 成本预警 — 退出钩子、$5 阈值对话框与多通道成本通知
java·大数据·jvm·ai
重庆小透明22 分钟前
今日收获(一些个人思考)
java·spring·大模型·springai·prompt注入
Edward1111111143 分钟前
一AI名词
java·开发语言·数据库·学习
栈溢出了1 小时前
Redis repl_backlog 学习笔记
java·开发语言·redis·学习
urkay-1 小时前
Kotlin Flow分类
android·开发语言·kotlin
doiito(Do It Together)1 小时前
【安全,架构】RustyVault 项目深度分析报告以及和HashiCorp Vault的差异
微服务·架构·rust
并不喜欢吃鱼1 小时前
从零开始 C++----- 十五.一文吃透 C++ 异常:try-catch、栈展开、自定义异常、异常安全 noexcept 底层全剖析
java·开发语言·jvm
问窗1 小时前
Rust实现Windows本地搜索工具
windows·搜索引擎·rust