#macro #codebase

bugsalot

为稳定代码库调试宏和API

12个版本

0.2.2 2022年1月26日
0.2.1 2019年12月23日
0.1.8 2019年12月1日
0.1.4 2019年6月30日

#377 in 调试

每月50次下载
用于 4 crate

MIT/Apache

41KB
391

bugsalot

GitHub unsafe: yes rust: 1.36.0+ License dependency status

这个crate提供用于处理bug的宏和方法。具体来说,我希望在崩溃时能够获得(bug报告、易于调试等)所有优点,同时避免(丢失进度、惹恼玩家等)所有缺点。Rust的错误处理机制(如Try?Result等)非常棒,但在处理实际bug时还有待提高。类似地,Rust的panic!.unwrap().expect()等,在提供bug上下文方面还不错,但用于编写稳定软件则不太理想。这个crate将尝试填补这一差距。

分支 徽章 备注
发布 Crates.io Docs 稳定/已发布版本
master Build Status Open issues "已完成"但尚未发布的"东西"。
wip/* "工作进行中" - 不完整,使用时请自行承担风险。
dead/* 被遗弃的工作线程

平台

平台 断点 调试器 CI 稳定 测试版 夜间版
Windows Supported Supported Tests Status
Android Supported Supported Build Status
Linux Supported Supported Tests Status Status Status
(发布) Status
FreeBSD Untested Untested No
NetBSD Untested Untested No
OS X Untested Untested Tests Status
iOS Untested Untested Build Status
WASM Supported N/A Build Status

快速入门

将以下bugsalot依赖项之一添加到你的Cargo.toml中

[dependencies]
bugsalot = "0.2"                                            # Or...
bugsalot = { version = "0.2", features = ["wasm-bindgen"] } # If using: wasm-pack
bugsalot = { version = "0.2", features = ["stdweb"]       } # If using: cargo web build

编写你的代码(有关更多代码,请参阅示例文档

use bugsalot::*;

fn main() {
    let _ = debugger::wait_until_attached(None); // Wait for a debugger to be attached

    loop {
        let a : Option<i32> = Some(42);
        let b : Result<i32, &'static str> = Err("Unavailable");
        let a = expect!(a, "Unable to do something or other", return);
        let b = expect!(b, "Unable to do something or other", break);
        // Debugger will pause on the above line, continuing will break out of the loop
    }

    expect!(true, "Booleans work too");
}

许可协议

许可协议为以下之一

任选其一。

贡献

除非您明确说明,否则根据Apache-2.0许可证定义的,您有意提交以包含在工作中的任何贡献,均应按照上述方式双许可,不附加任何额外条款或条件。

依赖项

~0–660KB
~12K SLoC