Dependencies
async fn main {
@tracing.setup(stdout=true, chrome=Some("trace.json"))
@tracing.scope("main", fn() {
@tracing.debug("starting")
do_work()
@tracing.info("done")
})
@tracing.close()
}// Initialize tracing
// - stdout: print log messages to stdout
// - chrome: write Chrome trace events to file
pub fn setup(stdout~ : Bool = false, chrome~ : String? = None) -> Unit
// Log messages (instant events)
pub fn debug(msg : String) -> Unit
pub fn info(msg : String) -> Unit
// Track function execution (duration events)
pub fn[T] scope(name : String, f : () -> T) -> T
pub async fn[T] scope_async(name : String, f : async () -> T) -> T
// Write trace file and cleanup
pub async fn close() -> Unit[
{"pid":0, "name":"debug: starting", "ts":5, "ph":"i", "s":"g"},
{"pid":0, "name":"info: done", "ts":100, "ph":"i", "s":"g"},
{"pid":0, "name":"main", "ts":0, "tid":0, "ph":"X", "dur":105}
]fn[T] scope(name : String, f : () -> T raise?) -> T raise?async fn[T] scope_async(name : String, f : async () -> T) -> Tfn setup(stdout? : Bool, chrome? : String?) -> UnitDependencies