# 03_error_info **Repository Path**: czlan91/03_error_info ## Basic Information - **Project Name**: 03_error_info - **Description**: rust 第三周 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-10 - **Last Updated**: 2024-05-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Geektime Rust 语言训练营 Rust 第三周 ## commit chore: update cliff.toml chore: update change log fix: allow non typos and fix clippy errors feature: improve the ToErrorInfo macro and use it in axum feature: support ToErrorInfo macro chore: init project with workspace ## tag v3-7-improve-macro v3-6-error-info-macro ## 依赖 ```shell cargo add base64 -p error-code cargo add axum --features http2 --features query --features tracing --dev -p error-code cargo add tokio --features rt --features rt-multi-thread --features macros --dev -p error-code cargo add tracing --dev -p error-code cargo add tracing-subscriber --features env-filter --dev -p error-code # 堆栈信息 cargo add backtrace --dev -p error-code cargo add darling -p error-code-derive cargo add proc-macro2 -p error-code-derive cargo add quote -p error-code-derive cargo add syn --features extra-traits -p error-code-derive ``` ## 创建 workspace ```shell cargo new error-code cargo new error-code-derive rm -rf src/ ``` 修改 cargo.toml ```toml [workspace] members = [ "error-code", "error-code-derive", ] # 写成聚合的形式,否则就需要写成类似 properties 的样式 resolver= "2" [workspace.dependencies] # 可以在 workspace 内部,引入crate时,很方便 error-code = { path = "../error-code" } error-code-derive = { path = "../error-code-derive" } ``` ## 宏展开查看 ```shell cd error-code cargo expand --example error ``` ## test ```shell cd error-code cargo nextest run -- test_data_struct --nocapture ``` ## 运行 example ```shell RUST_LOG=info cargo run --example web ```