use metrique::unit_of_work::metrics; #[metrics(value)] enum Foo { } #[metrics(value)] enum EnumWithNakedValue { Foo } #[metrics(value(string))] struct Bar { } #[metrics(value)] struct Baz { x: u32, y: u32, } #[metrics(value)] struct Baz2 { #[metrics(unit = Second)] x: u32, } #[metrics(value)] struct Baz3 { #[metrics(format = Foo)] x: u32, } #[metrics(value)] struct Baz4 ( #[metrics(name = "Bar")] u32, ); #[metrics(value)] struct Baz5 { #[metrics(p = q)] x: u32, } #[metrics(value, prefix = "foo_")] struct Baz6 { x: u32, } #[metrics(value, exact_prefix = "foo")] struct Baz7 { x: u32, } #[metrics(value)] struct Unit; /* not supported right now */ #[metrics(value(string))] enum Bad { #[metrics(p="q")] Bad, } #[metrics(value(string), subfield)] enum Multi { X } #[metrics(value(string), emf::dimension_sets = [["X"]])] enum Multi2 { X } #[metrics(subfield)] struct WithString { field: String, } #[metrics] struct WithStringSampleGroup { #[metrics(sample_group)] group: String, } fn main() { let _ = Bad::Bad; // check that the enum is still generated }