zlsrs 0.0.2

Rust 标准库扩展工具集,提供更便捷的使用方式
Documentation
use super::super::*;
use std::error::Error;

#[test]
fn test_basic_error() {
    let resp: Result<(), Box<dyn Error + Send + Sync>> = Err("test error".into());
    assert!(resp.is_err());
    assert_eq!(resp.err().unwrap().to_string(), "test error");
}

#[test]
fn test_try_catch() {
    // 测试正常情况
    let resp = try_catch(|| Ok(()));
    assert!(resp.is_ok());

    // 测试返回错误的情况
    let resp = try_catch(|| Err("test error".into()));
    assert!(resp.is_err());
    assert_eq!(resp.err().unwrap().as_str(), "test error");

    // 测试 panic 的情况
    let resp = try_catch(|| {
        panic!("test panic");
        #[allow(unreachable_code)]
        Ok(())
    });
    assert!(resp.is_err());
    assert_eq!(resp.err().unwrap(), "test panic".to_owned());
}