Skip to main content

metrickit/
lib.rs

1#![doc = include_str!("../README.md")]
2//!
3//! ---
4//!
5//! # API documentation
6//!
7//! Safe Rust bindings for Apple's
8//! [MetricKit](https://developer.apple.com/documentation/metrickit)
9//! framework.
10#![cfg_attr(docsrs, feature(doc_cfg))]
11#![allow(
12    clippy::missing_const_for_fn,
13    clippy::missing_errors_doc,
14    clippy::module_name_repetitions,
15    clippy::must_use_candidate,
16    clippy::new_without_default
17)]
18
19/// `MetricKit` average and measurement models.
20pub mod average;
21/// `MetricKit` call-stack tree models.
22pub mod call_stack_tree;
23/// `MetricKit` CPU exception diagnostic models.
24pub mod cpu_exception_diagnostic;
25/// `MetricKit` crash diagnostic models.
26pub mod crash_diagnostic;
27/// Shared `MetricKit` diagnostic context models.
28pub mod diagnostic;
29/// `MetricKit` diagnostic payload models.
30pub mod diagnostic_payload;
31/// `MetricKit` disk-write exception diagnostic models.
32pub mod disk_write_exception_diagnostic;
33/// Error types returned by the `MetricKit` wrapper.
34pub mod error;
35/// Low-level FFI bindings backing the `MetricKit` wrapper.
36pub mod ffi;
37/// `MetricKit` hang diagnostic models.
38pub mod hang_diagnostic;
39/// `MetricKit` histogram models.
40pub mod histogram;
41/// Re-exports for `MetricKit` manager types.
42pub mod manager;
43/// `MetricKit` metadata models.
44pub mod meta_data;
45/// `MetricKit` metric models.
46pub mod metric;
47/// `MetricKit` manager and subscriber APIs.
48pub mod metric_manager;
49/// `MetricKit` metric payload models.
50pub mod metric_payload;
51/// Aggregated `MetricKit` model re-exports.
52pub mod metrics;
53mod private;
54/// `MetricKit` signpost models and helpers.
55pub mod signpost;
56
57pub use average::{Average, Measurement};
58pub use call_stack_tree::CallStackTree;
59pub use cpu_exception_diagnostic::CpuExceptionDiagnostic;
60pub use crash_diagnostic::{CrashDiagnostic, CrashDiagnosticObjectiveCExceptionReason};
61pub use diagnostic::Diagnostic;
62pub use diagnostic_payload::DiagnosticPayload;
63pub use disk_write_exception_diagnostic::DiskWriteExceptionDiagnostic;
64pub use error::MetricKitError;
65pub use hang_diagnostic::HangDiagnostic;
66pub use histogram::{Histogram, HistogramBucket};
67pub use manager::{
68    LaunchTaskId, MetricManager, MetricSubscriberCallbacks, MetricSubscriberDelegate,
69    MetricSubscription,
70};
71pub use meta_data::MetaData;
72pub use metric::{
73    AnimationMetric, ApplicationExitMetric, ApplicationLaunchMetric,
74    ApplicationResponsivenessMetric, ApplicationTimeMetric, BackgroundExitData,
75    CellularConditionMetric, CpuMetric, DiskIoMetric, DiskSpaceUsageMetric, DisplayMetric,
76    ForegroundExitData, GpuMetric, LocationActivityMetric, MemoryMetric, NetworkTransferMetric,
77    AVERAGE_PIXEL_LUMINANCE_UNIT_SYMBOL, SIGNAL_BARS_UNIT_SYMBOL,
78};
79pub use metric_payload::MetricPayload;
80pub use signpost::{
81    MetricLogHandle, SignpostId, SignpostIntervalData, SignpostMetric, SignpostRecord,
82};
83
84/// Common imports.
85pub mod prelude {
86    pub use crate::average::{Average, Measurement};
87    pub use crate::call_stack_tree::CallStackTree;
88    pub use crate::cpu_exception_diagnostic::CpuExceptionDiagnostic;
89    pub use crate::crash_diagnostic::{CrashDiagnostic, CrashDiagnosticObjectiveCExceptionReason};
90    pub use crate::diagnostic::Diagnostic;
91    pub use crate::diagnostic_payload::DiagnosticPayload;
92    pub use crate::disk_write_exception_diagnostic::DiskWriteExceptionDiagnostic;
93    pub use crate::error::MetricKitError;
94    pub use crate::hang_diagnostic::HangDiagnostic;
95    pub use crate::histogram::{Histogram, HistogramBucket};
96    pub use crate::manager::{
97        LaunchTaskId, MetricManager, MetricSubscriberCallbacks, MetricSubscriberDelegate,
98        MetricSubscription,
99    };
100    pub use crate::meta_data::MetaData;
101    pub use crate::metric::{
102        AnimationMetric, ApplicationExitMetric, ApplicationLaunchMetric,
103        ApplicationResponsivenessMetric, ApplicationTimeMetric, BackgroundExitData,
104        CellularConditionMetric, CpuMetric, DiskIoMetric, DiskSpaceUsageMetric, DisplayMetric,
105        ForegroundExitData, GpuMetric, LocationActivityMetric, MemoryMetric, NetworkTransferMetric,
106        AVERAGE_PIXEL_LUMINANCE_UNIT_SYMBOL, SIGNAL_BARS_UNIT_SYMBOL,
107    };
108    pub use crate::metric_payload::MetricPayload;
109    pub use crate::signpost::{
110        MetricLogHandle, SignpostId, SignpostIntervalData, SignpostMetric, SignpostRecord,
111    };
112}