// DO NOT MODIFY! // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at https://mozilla.org/MPL/2.0/. // This file is generated by tools/glean-sym-parser. // Run `-p glean-sym-parser -- glean-core/src/glean.udl > glean-core/glean-sym/src/metrics.rs` // to regenerate it. // `glean-sym` tests ensure the vendored copy is unmodified. // This can be verified by running `cargo test -p glean-sym`. #![allow(clippy::all)] #![cfg_attr(rustfmt, rustfmt_skip)] use crate::types::*; use crate::util::*; #[derive(uniffi::Record)] pub struct CounterMetric { handle: u64, } impl CounterMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_countermetric)(self.handle, &mut call_status) } } } impl CounterMetric { pub fn new(meta: CommonMetricData) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_countermetric_new)( meta.clone_for_ffi(), &mut call_status, ); meta.destroy(); Self { handle } } } pub fn add(&self, amount: i32) -> () { unsafe { let this = self.clone_handle(); let amount = uniffi::FfiConverter::::lower(amount); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_countermetric_add)( this, amount.clone_for_ffi(), &mut call_status, ); amount.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_countermetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_countermetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct TimespanMetric { handle: u64, } impl TimespanMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_timespanmetric)( self.handle, &mut call_status, ) } } } impl TimespanMetric { pub fn new(meta: CommonMetricData, time_unit: TimeUnit) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let time_unit = uniffi::FfiConverter::::lower(time_unit); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_timespanmetric_new)( meta.clone_for_ffi(), time_unit.clone_for_ffi(), &mut call_status, ); time_unit.destroy(); meta.destroy(); Self { handle } } } pub fn start(&self) -> () { unsafe { let this = self.clone_handle(); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_timespanmetric_start)( this, &mut call_status, ); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn stop(&self) -> () { unsafe { let this = self.clone_handle(); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_timespanmetric_stop)( this, &mut call_status, ); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn cancel(&self) -> () { unsafe { let this = self.clone_handle(); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_timespanmetric_cancel)( this, &mut call_status, ); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn set_raw_nanos(&self, elapsed: i64) -> () { unsafe { let this = self.clone_handle(); let elapsed = uniffi::FfiConverter::::lower(elapsed); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_timespanmetric_set_raw_nanos)( this, elapsed.clone_for_ffi(), &mut call_status, ); elapsed.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_timespanmetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_timespanmetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct BooleanMetric { handle: u64, } impl BooleanMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_booleanmetric)(self.handle, &mut call_status) } } } impl BooleanMetric { pub fn new(meta: CommonMetricData) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_booleanmetric_new)( meta.clone_for_ffi(), &mut call_status, ); meta.destroy(); Self { handle } } } pub fn set(&self, value: bool) -> () { unsafe { let this = self.clone_handle(); let value = uniffi::FfiConverter::::lower(value); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_booleanmetric_set)( this, value.clone_for_ffi(), &mut call_status, ); value.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_booleanmetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_booleanmetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct StringMetric { handle: u64, } impl StringMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_stringmetric)(self.handle, &mut call_status) } } } impl StringMetric { pub fn new(meta: CommonMetricData) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_stringmetric_new)( meta.clone_for_ffi(), &mut call_status, ); meta.destroy(); Self { handle } } } pub fn set(&self, value: String) -> () { unsafe { let this = self.clone_handle(); let value = uniffi::FfiConverter::::lower(value); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_stringmetric_set)( this, value.clone_for_ffi(), &mut call_status, ); value.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_stringmetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_stringmetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct StringListMetric { handle: u64, } impl StringListMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_stringlistmetric)( self.handle, &mut call_status, ) } } } impl StringListMetric { pub fn new(meta: CommonMetricData) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_stringlistmetric_new)( meta.clone_for_ffi(), &mut call_status, ); meta.destroy(); Self { handle } } } pub fn add(&self, value: String) -> () { unsafe { let this = self.clone_handle(); let value = uniffi::FfiConverter::::lower(value); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_stringlistmetric_add)( this, value.clone_for_ffi(), &mut call_status, ); value.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn set(&self, value: Vec) -> () { unsafe { let this = self.clone_handle(); let value = uniffi::FfiConverter::::lower(value); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_stringlistmetric_set)( this, value.clone_for_ffi(), &mut call_status, ); value.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option> { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_stringlistmetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_stringlistmetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct UrlMetric { handle: u64, } impl UrlMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_urlmetric)(self.handle, &mut call_status) } } } impl UrlMetric { pub fn new(meta: CommonMetricData) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_urlmetric_new)( meta.clone_for_ffi(), &mut call_status, ); meta.destroy(); Self { handle } } } pub fn set(&self, value: String) -> () { unsafe { let this = self.clone_handle(); let value = uniffi::FfiConverter::::lower(value); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_urlmetric_set)( this, value.clone_for_ffi(), &mut call_status, ); value.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_urlmetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_urlmetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct UuidMetric { handle: u64, } impl UuidMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_uuidmetric)(self.handle, &mut call_status) } } } impl UuidMetric { pub fn new(meta: CommonMetricData) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_uuidmetric_new)( meta.clone_for_ffi(), &mut call_status, ); meta.destroy(); Self { handle } } } pub fn set(&self, value: String) -> () { unsafe { let this = self.clone_handle(); let value = uniffi::FfiConverter::::lower(value); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_uuidmetric_set)( this, value.clone_for_ffi(), &mut call_status, ); value.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn generate_and_set(&self) -> String { unsafe { let this = self.clone_handle(); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_uuidmetric_generate_and_set)( this, &mut call_status, ); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_uuidmetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_uuidmetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct QuantityMetric { handle: u64, } impl QuantityMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_quantitymetric)( self.handle, &mut call_status, ) } } } impl QuantityMetric { pub fn new(meta: CommonMetricData) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_quantitymetric_new)( meta.clone_for_ffi(), &mut call_status, ); meta.destroy(); Self { handle } } } pub fn set(&self, value: i64) -> () { unsafe { let this = self.clone_handle(); let value = uniffi::FfiConverter::::lower(value); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_quantitymetric_set)( this, value.clone_for_ffi(), &mut call_status, ); value.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_quantitymetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_quantitymetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct TimingDistributionMetric { handle: u64, } impl TimingDistributionMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_timingdistributionmetric)( self.handle, &mut call_status, ) } } } impl TimingDistributionMetric { pub fn new(meta: CommonMetricData, time_unit: TimeUnit) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let time_unit = uniffi::FfiConverter::::lower(time_unit); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_timingdistributionmetric_new)( meta.clone_for_ffi(), time_unit.clone_for_ffi(), &mut call_status, ); time_unit.destroy(); meta.destroy(); Self { handle } } } pub fn start(&self) -> TimerId { unsafe { let this = self.clone_handle(); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_timingdistributionmetric_start)( this, &mut call_status, ); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn stop_and_accumulate(&self, timer_id: TimerId) -> () { unsafe { let this = self.clone_handle(); let timer_id = uniffi::FfiConverter::::lower(timer_id); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_timingdistributionmetric_stop_and_accumulate)( this, timer_id.clone_for_ffi(), &mut call_status, ); timer_id.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn cancel(&self, timer_id: TimerId) -> () { unsafe { let this = self.clone_handle(); let timer_id = uniffi::FfiConverter::::lower(timer_id); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_timingdistributionmetric_cancel)( this, timer_id.clone_for_ffi(), &mut call_status, ); timer_id.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn accumulate_samples(&self, samples: Vec) -> () { unsafe { let this = self.clone_handle(); let samples = uniffi::FfiConverter::::lower(samples); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_timingdistributionmetric_accumulate_samples)( this, samples.clone_for_ffi(), &mut call_status, ); samples.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn accumulate_single_sample(&self, sample: i64) -> () { unsafe { let this = self.clone_handle(); let sample = uniffi::FfiConverter::::lower(sample); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_timingdistributionmetric_accumulate_single_sample)( this, sample.clone_for_ffi(), &mut call_status, ); sample.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_timingdistributionmetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_timingdistributionmetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct MemoryDistributionMetric { handle: u64, } impl MemoryDistributionMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_memorydistributionmetric)( self.handle, &mut call_status, ) } } } impl MemoryDistributionMetric { pub fn new(meta: CommonMetricData, memory_unit: MemoryUnit) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let memory_unit = uniffi::FfiConverter::< crate::UniFfiTag, >::lower(memory_unit); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_memorydistributionmetric_new)( meta.clone_for_ffi(), memory_unit.clone_for_ffi(), &mut call_status, ); memory_unit.destroy(); meta.destroy(); Self { handle } } } pub fn accumulate(&self, sample: i64) -> () { unsafe { let this = self.clone_handle(); let sample = uniffi::FfiConverter::::lower(sample); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_memorydistributionmetric_accumulate)( this, sample.clone_for_ffi(), &mut call_status, ); sample.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn accumulate_samples(&self, samples: Vec) -> () { unsafe { let this = self.clone_handle(); let samples = uniffi::FfiConverter::::lower(samples); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_memorydistributionmetric_accumulate_samples)( this, samples.clone_for_ffi(), &mut call_status, ); samples.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_memorydistributionmetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_memorydistributionmetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct CustomDistributionMetric { handle: u64, } impl CustomDistributionMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_customdistributionmetric)( self.handle, &mut call_status, ) } } } impl CustomDistributionMetric { pub fn new( meta: CommonMetricData, range_min: i64, range_max: i64, bucket_count: i64, histogram_type: HistogramType, ) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let range_min = uniffi::FfiConverter::::lower(range_min); let range_max = uniffi::FfiConverter::::lower(range_max); let bucket_count = uniffi::FfiConverter::< crate::UniFfiTag, >::lower(bucket_count); let histogram_type = uniffi::FfiConverter::< crate::UniFfiTag, >::lower(histogram_type); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_customdistributionmetric_new)( meta.clone_for_ffi(), range_min.clone_for_ffi(), range_max.clone_for_ffi(), bucket_count.clone_for_ffi(), histogram_type.clone_for_ffi(), &mut call_status, ); histogram_type.destroy(); bucket_count.destroy(); range_max.destroy(); range_min.destroy(); meta.destroy(); Self { handle } } } pub fn accumulate_samples(&self, samples: Vec) -> () { unsafe { let this = self.clone_handle(); let samples = uniffi::FfiConverter::::lower(samples); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_customdistributionmetric_accumulate_samples)( this, samples.clone_for_ffi(), &mut call_status, ); samples.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn accumulate_single_sample(&self, sample: i64) -> () { unsafe { let this = self.clone_handle(); let sample = uniffi::FfiConverter::::lower(sample); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_customdistributionmetric_accumulate_single_sample)( this, sample.clone_for_ffi(), &mut call_status, ); sample.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_customdistributionmetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_customdistributionmetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct DatetimeMetric { handle: u64, } impl DatetimeMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_datetimemetric)( self.handle, &mut call_status, ) } } } impl DatetimeMetric { pub fn new(meta: CommonMetricData, time_unit: TimeUnit) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let time_unit = uniffi::FfiConverter::::lower(time_unit); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_datetimemetric_new)( meta.clone_for_ffi(), time_unit.clone_for_ffi(), &mut call_status, ); time_unit.destroy(); meta.destroy(); Self { handle } } } pub fn set(&self, value: Option) -> () { unsafe { let this = self.clone_handle(); let value = uniffi::FfiConverter::::lower(value); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_datetimemetric_set)( this, value.clone_for_ffi(), &mut call_status, ); value.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_datetimemetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value_as_string(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_datetimemetric_test_get_value_as_string)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_datetimemetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct EventMetric { handle: u64, } impl EventMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_eventmetric)(self.handle, &mut call_status) } } } impl EventMetric { pub fn new(meta: CommonMetricData, allowed_extra_keys: Vec) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let allowed_extra_keys = uniffi::FfiConverter::< crate::UniFfiTag, >::lower(allowed_extra_keys); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_eventmetric_new)( meta.clone_for_ffi(), allowed_extra_keys.clone_for_ffi(), &mut call_status, ); allowed_extra_keys.destroy(); meta.destroy(); Self { handle } } } pub fn record(&self, extra: ::std::collections::HashMap) -> () { unsafe { let this = self.clone_handle(); let extra = uniffi::FfiConverter::::lower(extra); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_eventmetric_record)( this, extra.clone_for_ffi(), &mut call_status, ); extra.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value( &self, ping_name: Option, ) -> Option> { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_eventmetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_eventmetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct RateMetric { handle: u64, } impl RateMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_ratemetric)(self.handle, &mut call_status) } } } impl RateMetric { pub fn new(meta: CommonMetricData) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_ratemetric_new)( meta.clone_for_ffi(), &mut call_status, ); meta.destroy(); Self { handle } } } pub fn add_to_numerator(&self, amount: i32) -> () { unsafe { let this = self.clone_handle(); let amount = uniffi::FfiConverter::::lower(amount); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_ratemetric_add_to_numerator)( this, amount.clone_for_ffi(), &mut call_status, ); amount.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn add_to_denominator(&self, amount: i32) -> () { unsafe { let this = self.clone_handle(); let amount = uniffi::FfiConverter::::lower(amount); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_ratemetric_add_to_denominator)( this, amount.clone_for_ffi(), &mut call_status, ); amount.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_ratemetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_ratemetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct DenominatorMetric { handle: u64, } impl DenominatorMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_denominatormetric)( self.handle, &mut call_status, ) } } } impl DenominatorMetric { pub fn new(meta: CommonMetricData, numerators: Vec) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let numerators = uniffi::FfiConverter::::lower(numerators); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_denominatormetric_new)( meta.clone_for_ffi(), numerators.clone_for_ffi(), &mut call_status, ); numerators.destroy(); meta.destroy(); Self { handle } } } pub fn add(&self, amount: i32) -> () { unsafe { let this = self.clone_handle(); let amount = uniffi::FfiConverter::::lower(amount); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_denominatormetric_add)( this, amount.clone_for_ffi(), &mut call_status, ); amount.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_denominatormetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_denominatormetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct NumeratorMetric { handle: u64, } impl NumeratorMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_numeratormetric)( self.handle, &mut call_status, ) } } } impl NumeratorMetric { pub fn new(meta: CommonMetricData) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_numeratormetric_new)( meta.clone_for_ffi(), &mut call_status, ); meta.destroy(); Self { handle } } } pub fn add_to_numerator(&self, amount: i32) -> () { unsafe { let this = self.clone_handle(); let amount = uniffi::FfiConverter::::lower(amount); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_numeratormetric_add_to_numerator)( this, amount.clone_for_ffi(), &mut call_status, ); amount.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_numeratormetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_numeratormetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct TextMetric { handle: u64, } impl TextMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_textmetric)(self.handle, &mut call_status) } } } impl TextMetric { pub fn new(meta: CommonMetricData) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_textmetric_new)( meta.clone_for_ffi(), &mut call_status, ); meta.destroy(); Self { handle } } } pub fn set(&self, value: String) -> () { unsafe { let this = self.clone_handle(); let value = uniffi::FfiConverter::::lower(value); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_textmetric_set)( this, value.clone_for_ffi(), &mut call_status, ); value.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_textmetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_textmetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct ObjectMetric { handle: u64, } impl ObjectMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_objectmetric)(self.handle, &mut call_status) } } } impl ObjectMetric { pub fn new(meta: CommonMetricData) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_objectmetric_new)( meta.clone_for_ffi(), &mut call_status, ); meta.destroy(); Self { handle } } } pub fn set_string(&self, object: String) -> () { unsafe { let this = self.clone_handle(); let object = uniffi::FfiConverter::::lower(object); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_objectmetric_set_string)( this, object.clone_for_ffi(), &mut call_status, ); object.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value(&self, ping_name: Option) -> Option { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_objectmetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_objectmetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn record_schema_error(&self) -> () { unsafe { let this = self.clone_handle(); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_objectmetric_record_schema_error)( this, &mut call_status, ); crate::util::LocalTryLift::try_lift(res).unwrap() } } } #[derive(uniffi::Record)] pub struct DualLabeledCounterMetric { handle: u64, } impl DualLabeledCounterMetric { unsafe fn clone_handle(&self) -> u64 { unsafe { let mut call_status = uniffi::RustCallStatus::default(); (crate::GLEAN .uniffi_glean_core_fn_clone_duallabeledcountermetric)( self.handle, &mut call_status, ) } } } impl DualLabeledCounterMetric { pub fn new( meta: CommonMetricData, keys: Option>, categories: Option>, ) -> Self { unsafe { let meta = uniffi::FfiConverter::::lower(meta); let keys = uniffi::FfiConverter::::lower(keys); let categories = uniffi::FfiConverter::::lower(categories); let mut call_status = uniffi::RustCallStatus::default(); let handle = (crate::GLEAN .uniffi_glean_core_fn_constructor_duallabeledcountermetric_new)( meta.clone_for_ffi(), keys.clone_for_ffi(), categories.clone_for_ffi(), &mut call_status, ); categories.destroy(); keys.destroy(); meta.destroy(); Self { handle } } } pub fn get(&self, key: String, category: String) -> CounterMetric { unsafe { let this = self.clone_handle(); let key = uniffi::FfiConverter::::lower(key); let category = uniffi::FfiConverter::::lower(category); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_duallabeledcountermetric_get)( this, key.clone_for_ffi(), category.clone_for_ffi(), &mut call_status, ); category.destroy(); key.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_value( &self, ping_name: Option, ) -> Option< ::std::collections::HashMap>, > { unsafe { let this = self.clone_handle(); let ping_name = uniffi::FfiConverter::::lower(ping_name); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_duallabeledcountermetric_test_get_value)( this, ping_name.clone_for_ffi(), &mut call_status, ); ping_name.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } pub fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32 { unsafe { let this = self.clone_handle(); let error = uniffi::FfiConverter::::lower(error); let mut call_status = uniffi::RustCallStatus::default(); let res = (crate::GLEAN .uniffi_glean_core_fn_method_duallabeledcountermetric_test_get_num_recorded_errors)( this, error.clone_for_ffi(), &mut call_status, ); error.destroy(); crate::util::LocalTryLift::try_lift(res).unwrap() } } } library_binding! { fn ffi_glean_core_rustbuffer_from_bytes(bytes : ::uniffi::ForeignBytes, call_status : & mut ::uniffi::RustCallStatus) -> ::uniffi::RustBuffer; fn ffi_glean_core_uniffi_contract_version() -> u32; fn ffi_glean_core_rustbuffer_free(bytes : ::uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus); fn uniffi_glean_core_fn_clone_countermetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_countermetric_new(meta : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_countermetric_add(handle : u64, amount : i32, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_countermetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_countermetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_timespanmetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_timespanmetric_new(meta : uniffi::RustBuffer, time_unit : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_timespanmetric_start(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_timespanmetric_stop(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_timespanmetric_cancel(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_timespanmetric_set_raw_nanos(handle : u64, elapsed : i64, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_timespanmetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_timespanmetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_booleanmetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_booleanmetric_new(meta : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_booleanmetric_set(handle : u64, value : i8, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_booleanmetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_booleanmetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_stringmetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_stringmetric_new(meta : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_stringmetric_set(handle : u64, value : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_stringmetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_stringmetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_stringlistmetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_stringlistmetric_new(meta : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_stringlistmetric_add(handle : u64, value : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_stringlistmetric_set(handle : u64, value : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_stringlistmetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_stringlistmetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_urlmetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_urlmetric_new(meta : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_urlmetric_set(handle : u64, value : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_urlmetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_urlmetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_uuidmetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_uuidmetric_new(meta : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_uuidmetric_set(handle : u64, value : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_uuidmetric_generate_and_set(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_uuidmetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_uuidmetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_quantitymetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_quantitymetric_new(meta : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_quantitymetric_set(handle : u64, value : i64, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_quantitymetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_quantitymetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_timingdistributionmetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_timingdistributionmetric_new(meta : uniffi::RustBuffer, time_unit : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_timingdistributionmetric_start(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_timingdistributionmetric_stop_and_accumulate(handle : u64, timer_id : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_timingdistributionmetric_cancel(handle : u64, timer_id : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_timingdistributionmetric_accumulate_samples(handle : u64, samples : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_timingdistributionmetric_accumulate_single_sample(handle : u64, sample : i64, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_timingdistributionmetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_timingdistributionmetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_memorydistributionmetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_memorydistributionmetric_new(meta : uniffi::RustBuffer, memory_unit : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_memorydistributionmetric_accumulate(handle : u64, sample : i64, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_memorydistributionmetric_accumulate_samples(handle : u64, samples : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_memorydistributionmetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_memorydistributionmetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_customdistributionmetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_customdistributionmetric_new(meta : uniffi::RustBuffer, range_min : i64, range_max : i64, bucket_count : i64, histogram_type : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_customdistributionmetric_accumulate_samples(handle : u64, samples : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_customdistributionmetric_accumulate_single_sample(handle : u64, sample : i64, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_customdistributionmetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_customdistributionmetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_datetimemetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_datetimemetric_new(meta : uniffi::RustBuffer, time_unit : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_datetimemetric_set(handle : u64, value : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_datetimemetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_datetimemetric_test_get_value_as_string(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_datetimemetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_eventmetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_eventmetric_new(meta : uniffi::RustBuffer, allowed_extra_keys : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_eventmetric_record(handle : u64, extra : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_eventmetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_eventmetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_ratemetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_ratemetric_new(meta : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_ratemetric_add_to_numerator(handle : u64, amount : i32, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_ratemetric_add_to_denominator(handle : u64, amount : i32, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_ratemetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_ratemetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_denominatormetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_denominatormetric_new(meta : uniffi::RustBuffer, numerators : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_denominatormetric_add(handle : u64, amount : i32, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_denominatormetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_denominatormetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_numeratormetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_numeratormetric_new(meta : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_numeratormetric_add_to_numerator(handle : u64, amount : i32, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_numeratormetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_numeratormetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_textmetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_textmetric_new(meta : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_textmetric_set(handle : u64, value : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_textmetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_textmetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_clone_objectmetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_objectmetric_new(meta : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_objectmetric_set_string(handle : u64, object : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_method_objectmetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_objectmetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; fn uniffi_glean_core_fn_method_objectmetric_record_schema_error(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> (); fn uniffi_glean_core_fn_clone_duallabeledcountermetric(handle : u64, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_constructor_duallabeledcountermetric_new(meta : uniffi::RustBuffer, keys : uniffi::RustBuffer, categories : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> u64; fn uniffi_glean_core_fn_method_duallabeledcountermetric_get(handle : u64, key : uniffi::RustBuffer, category : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_duallabeledcountermetric_test_get_value(handle : u64, ping_name : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> uniffi::RustBuffer; fn uniffi_glean_core_fn_method_duallabeledcountermetric_test_get_num_recorded_errors(handle : u64, error : uniffi::RustBuffer, call_status : & mut ::uniffi::RustCallStatus) -> i32; }