in Sources/CoreMetrics/Metrics.swift [530:584]
func makeCounter(label: String, dimensions: [(String, String)]) -> CounterHandler
/// Create a backing `FloatingPointCounterHandler`.
///
/// - parameters:
/// - label: The label for the `FloatingPointCounterHandler`.
/// - dimensions: The dimensions for the `FloatingPointCounterHandler`.
func makeFloatingPointCounter(label: String, dimensions: [(String, String)]) -> FloatingPointCounterHandler
/// Create a backing `RecorderHandler`.
///
/// - parameters:
/// - label: The label for the `RecorderHandler`.
/// - dimensions: The dimensions for the `RecorderHandler`.
/// - aggregate: Is data aggregation expected.
func makeRecorder(label: String, dimensions: [(String, String)], aggregate: Bool) -> RecorderHandler
/// Create a backing `TimerHandler`.
///
/// - parameters:
/// - label: The label for the `TimerHandler`.
/// - dimensions: The dimensions for the `TimerHandler`.
func makeTimer(label: String, dimensions: [(String, String)]) -> TimerHandler
/// Invoked when the corresponding `Counter`'s `destroy()` function is invoked.
/// Upon receiving this signal the factory may eagerly release any resources related to this counter.
///
/// - parameters:
/// - handler: The handler to be destroyed.
func destroyCounter(_ handler: CounterHandler)
/// Invoked when the corresponding `FloatingPointCounter`'s `destroy()` function is invoked.
/// Upon receiving this signal the factory may eagerly release any resources related to this counter.
///
/// - parameters:
/// - handler: The handler to be destroyed.
func destroyFloatingPointCounter(_ handler: FloatingPointCounterHandler)
/// Invoked when the corresponding `Recorder`'s `destroy()` function is invoked.
/// Upon receiving this signal the factory may eagerly release any resources related to this recorder.
///
/// - parameters:
/// - handler: The handler to be destroyed.
func destroyRecorder(_ handler: RecorderHandler)
/// Invoked when the corresponding `Timer`'s `destroy()` function is invoked.
/// Upon receiving this signal the factory may eagerly release any resources related to this timer.
///
/// - parameters:
/// - handler: The handler to be destroyed.
func destroyTimer(_ handler: TimerHandler)
}
/// Wraps a CounterHandler, adding support for incrementing by floating point values by storing an accumulated floating point value and recording increments to the underlying CounterHandler after crossing integer boundaries.
internal class AccumulatingRoundingFloatingPointCounter: FloatingPointCounterHandler {