emit

Crates.ioemit
lib.rsemit
version0.11.0-alpha.21
sourcesrc
created_at2015-08-08 09:03:14.543574
updated_at2024-10-21 03:41:45.868945
descriptionStructured diagnostics for Rust applications.
homepage
repositoryhttps://github.com/emit-rs/emit
max_upload_size
id2786
size2,955,389
Ashley Mannix (KodrAus)

documentation

README

emit

all

Developer-first diagnostics for Rust applications

emit is a framework for adding diagnostics to your Rust applications with a simple, powerful data model and an expressive syntax inspired by Message Templates. emit's guiding design principle is low ceremony, low cognitive-load.

This readme covers just enough to give you an idea of what emit is. For a proper treatment, see:

Getting started

Add emit to your Cargo.toml:

[dependencies.emit]
version = "0.11.0-alpha.21"

[dependencies.emit_term]
version = "0.11.0-alpha.21"

Initialize emit in your main.rs and start peppering diagnostics throughout your application:

fn main() {
    // Configure `emit` to write events to the console
    let rt = emit::setup()
        .emit_to(emit_term::stdout())
        .init();

    // Your app code goes here
    //
    // Try uncommenting the following line as an example:
    //
    // greet("Rust");

    // Flush any remaining events before `main` returns
    rt.blocking_flush(std::time::Duration::from_secs(5));
}

#[emit::span("Greet {user}")]
fn greet(user: &str) {
    emit::info!("Hello, {user}!");
}

The output of running the above program

Commit count: 470

cargo fmt