#[cfg(not(feature = "panic_on_next_alloc"))]
use alloc_tracker::{Allocator, Session};
#[cfg(feature = "panic_on_next_alloc")]
use alloc_tracker::{Allocator, Session, panic_on_next_alloc};
#[global_allocator]
static ALLOCATOR: Allocator<std::alloc::System> = Allocator::system();
#[expect(clippy::useless_vec, reason = "example needs to show allocation")]
fn main() {
let session = Session::new();
{
let operation = session.operation("my_operation");
let _span = operation.measure_process();
let _data = vec![1, 2, 3, 4, 5]; }
{
let operation = session.operation("multiple_allocations");
let _span = operation.measure_process();
let _vec1 = vec![1, 2, 3]; let _vec2 = vec![4, 5]; let _string = String::from("Hello"); }
session.print_to_stdout();
#[cfg(feature = "panic_on_next_alloc")]
{
panic_on_next_alloc(true);
panic_on_next_alloc(false);
let _vec = vec![1, 2, 3]; }
#[cfg(not(feature = "panic_on_next_alloc"))]
{
println!("To test panic_on_next_alloc functionality, run with:");
println!("cargo run --example alloc_tracker_readme --features panic_on_next_alloc");
let _vec = vec![1, 2, 3]; }
}