---
source: metrique-macro/src/lib.rs
expression: parsed_file
---
struct RequestMetrics {
operation: &'static str,
number_of_ducks: usize,
}
#[doc(hidden)]
pub struct RequestMetricsEntry {
#[deprecated(
note = "these fields will become private in a future release. To introspect an entry, use `metrique_writer::test_util::test_entry`"
)]
#[doc(hidden)]
operation: <&'static str as metrique::CloseValue>::Closed,
#[deprecated(
note = "these fields will become private in a future release. To introspect an entry, use `metrique_writer::test_util::test_entry`"
)]
#[doc(hidden)]
number_of_ducks: <usize as metrique::CloseValue>::Closed,
}
const _: () = {
#[expect(deprecated)]
impl<NS: ::metrique::NameStyle> ::metrique::InflectableEntry<NS>
for RequestMetricsEntry {
fn write<'a>(&'a self, writer: &mut impl ::metrique::__writer::EntryWriter<'a>) {
::metrique::__writer::EntryWriter::value(
writer,
<NS as ::metrique::NameStyle>::inflect_name(
"operation",
"Operation",
"operation",
"operation",
),
&self.operation,
);
::metrique::__writer::EntryWriter::value(
writer,
<NS as ::metrique::NameStyle>::inflect_name(
"number_of_ducks",
"NumberOfDucks",
"number_of_ducks",
"number-of-ducks",
),
&self.number_of_ducks,
);
}
fn sample_group(
&self,
) -> impl ::std::iter::Iterator<
Item = (::std::borrow::Cow<'static, str>, ::std::borrow::Cow<'static, str>),
> {
::std::iter::empty()
}
}
};
impl metrique::CloseValue for RequestMetrics {
type Closed = RequestMetricsEntry;
fn close(self) -> Self::Closed {
#[allow(deprecated)]
RequestMetricsEntry {
operation: metrique::CloseValue::close(self.operation),
number_of_ducks: metrique::CloseValue::close(self.number_of_ducks),
}
}
}
type RequestMetricsGuard<Q = ::metrique::DefaultSink> = ::metrique::AppendAndCloseOnDrop<
RequestMetrics,
Q,
>;
type RequestMetricsHandle<Q = ::metrique::DefaultSink> = ::metrique::AppendAndCloseOnDropHandle<
RequestMetrics,
Q,
>;
impl RequestMetrics {
///Creates a AppendAndCloseOnDrop that will be automatically appended to `sink` on drop.
fn append_on_drop<
Q: ::metrique::__writer::EntrySink<::metrique::RootEntry<RequestMetricsEntry>>
+ Send + Sync + 'static,
>(self, sink: Q) -> RequestMetricsGuard<Q> {
::metrique::append_and_close(self, sink)
}
}