// Copyright 2026 Leo Cheng
// SPDX-License-Identifier: Apache-2.0
///|
/// A clock that moves a quarter of a second every time it is read, so the output is the same on
/// every run.
fn ticking() -> () -> Double {
let mut at = 0.0
fn() {
at = at + 0.25
at
}
}
///|
fn run() -> Unit raise {
let registry = @moonp8s.Registry::new()
register_metrics(registry)
let now = ticking()
ignore(place_metered("tea", now~))
ignore(place_metered("coffee", now~))
ignore(place_metered("gold", now~) catch { _ => 0 })
println(@moonp8s.text(registry.collect()))
}
///|
#coverage.skip
fn main {
run() catch {
e => println("refused: \{e}")
}
}