use tiny_counter::EventStore;
fn main() {
println!("=== Basic Usage ===\n");
let store = EventStore::new();
println!("Recording events:");
store.record("app_launch");
store.record("app_launch");
store.record("button_click");
println!(" Recorded 2 launches, 1 click\n");
store.record_count("api_call", 5);
println!(" Recorded 5 API calls\n");
println!("Querying counts:");
let launches = store.query("app_launch").last_days(7).sum().unwrap_or(0);
println!(" App launches in last 7 days: {}", launches);
let clicks = store
.query("button_click")
.last_hours(24)
.sum()
.unwrap_or(0);
println!(" Button clicks in last 24 hours: {}", clicks);
let api_calls = store.query("api_call").last_minutes(60).sum().unwrap_or(0);
println!(" API calls in last 60 minutes: {}\n", api_calls);
println!("Last seen times:");
if let Some(duration) = store.query("app_launch").last_seen() {
println!(" App launch: {} seconds ago", duration.num_seconds());
}
if let Some(duration) = store.query("button_click").last_seen() {
println!(" Button click: {} seconds ago", duration.num_seconds());
}
if store.query("never_happened").last_seen().is_none() {
println!(" never_happened: never occurred\n");
}
println!("Same event at different time scales:");
let last_hour = store.query("api_call").last_minutes(60).sum().unwrap_or(0);
let last_day = store.query("api_call").last_hours(24).sum().unwrap_or(0);
let last_week = store.query("api_call").last_days(7).sum().unwrap_or(0);
println!(" API calls last hour: {}", last_hour);
println!(" API calls last day: {}", last_day);
println!(" API calls last week: {}", last_week);
println!("\n✓ Basic usage complete!");
}