Skip to main content

ic_canister_kit/common/
trap.rs

1/// 拆箱
2/// ! 可能中止程序
3pub fn trap<T, E: std::fmt::Display>(result: Result<T, E>) -> T {
4    match result {
5        Ok(value) => value,
6        Err(err) => ic_cdk::trap(err.to_string()),
7    }
8}
9
10/// 拆箱
11/// ! 可能中止程序
12pub fn trap_string<T, E>(result: Result<T, E>) -> T
13where
14    E: Into<String>,
15{
16    match result {
17        Ok(value) => value,
18        Err(err) => ic_cdk::trap(err.into()),
19    }
20}
21
22/// 拆箱
23/// ! 可能中止程序
24pub fn trap_debug<T, E: std::fmt::Debug>(result: Result<T, E>) -> T {
25    match result {
26        Ok(value) => value,
27        Err(err) => ic_cdk::trap(format!("{err:?}")),
28    }
29}