ark_api_ffi/ffi/telemetry_v0.rs
1define_api_id!(0xc59d_d1af_2a1f_5b37, "telemetry-v0");
2
3use bytemuck::Pod;
4use bytemuck::Zeroable;
5
6/// Key-value telemetry event string property
7#[derive(Default, Debug, Copy, Clone, Pod, Zeroable)]
8#[repr(C)]
9pub struct EventProperty {
10 /// Key string pointer
11 pub key_ptr: u32,
12 /// Key string length
13 pub key_len: u32,
14
15 /// Value string pointer
16 pub value_ptr: u32,
17 /// Value string length
18 pub value_len: u32,
19}
20
21// NOTE: This uses the wrong module name "resource" here which should be "telemetry"
22// but this is now baked in to the stable ABI name of the functions (doh!) so can't be changed here
23//
24// in future version of Telemetry API, do call the module "telemetry"!!
25#[ark_api_macros::ark_bindgen(imports = "ark-telemetry-v0")]
26mod resource {
27 use super::*;
28 extern "C" {
29 /// Send a telemetry event
30 ///
31 /// Each event has a string name and user-defined set of key-value string properties
32 #[with_memory]
33 #[deprecated_infallible]
34 pub fn send_event(name: &str, properties: &[EventProperty]);
35 }
36}
37
38pub use resource::*;