Crates.io | async-debug |
lib.rs | async-debug |
version | 0.1.3 |
source | src |
created_at | 2022-02-22 20:33:37.549216 |
updated_at | 2022-02-22 22:31:28.376954 |
description | Debug structs and enums containing values that require an async call to render |
homepage | |
repository | https://github.com/GothAck/rs-async-debug |
max_upload_size | |
id | 537463 |
size | 6,579 |
The async-debug
crate makes it easy to debug structs and enums containing
values that require an async call to render.
For example:
use tokio::sync::RwLock;
#[derive(Debug)]
struct MyStruct {
my_value: RwLock<String>
}
let my_struct = MyStruct { my_value: RwLock::from("Hello, world!".to_string()) };
println!("{:?}", my_struct );
Prints something like:
MyStruct { my_value: RwLock { mr: 536870911, s: Semaphore { permits: 536870911 }, c: UnsafeCell { .. } } }
Just derive from async_debug::AsyncDebug
and add the appropriate attribute!
Add to cargo.toml:
[dependencies]
async-debug = "0.1.3"
use async_debug::AsyncDebug;
use tokio::sync::RwLock;
#[derive(AsyncDebug)]
struct MyStruct {
#[async_debug(async_call = RwLock::read, clone, ty = String)]
my_value: RwLock<String>
}
let my_struct = MyStruct { my_value: RwLock::from("Hello, world!".to_string()) };
assert_eq!(
format!("{:?}", my_struct.async_debug().await),
"MyStruct { my_value: \"Hello, world!\" }",
);