// Cloudflare Workers Analytics Engine bindings
///|
fn analytics_to_js_array(values : Array[@core.Any]) -> @core.Any {
let out = @core.new_array()
let mut i = 0
while i < values.length() {
@core.any(out)._call("push", [values[i]]) |> ignore
i = i + 1
}
out
}
///|
fn analytics_to_js_double_array(values : Array[Double]) -> @core.Any {
let out = @core.new_array()
let mut i = 0
while i < values.length() {
@core.any(out)._call("push", [@core.any(values[i])]) |> ignore
i = i + 1
}
out
}
///|
#external
pub type AnalyticsEngineDataset
///|
pub fn AnalyticsEngineDataset::as_any(
self : AnalyticsEngineDataset,
) -> @core.Any = "%identity"
///|
pub(all) struct AnalyticsEngineDataPoint {
indexes : Array[@core.Any]?
doubles : Array[Double]?
blobs : Array[@core.Any]?
}
///|
pub fn AnalyticsEngineDataPoint::to_js(
self : AnalyticsEngineDataPoint,
) -> @core.Any {
let obj = @core.new_object()
if self.indexes is Some(values) {
obj["indexes"] = analytics_to_js_array(values)
}
if self.doubles is Some(values) {
obj["doubles"] = analytics_to_js_double_array(values)
}
if self.blobs is Some(values) {
obj["blobs"] = analytics_to_js_array(values)
}
obj
}
///|
pub fn AnalyticsEngineDataPoint::default() -> AnalyticsEngineDataPoint {
{ indexes: None, doubles: None, blobs: None }
}
///|
pub fn AnalyticsEngineDataset::write_data_point(
self : AnalyticsEngineDataset,
event? : AnalyticsEngineDataPoint,
) -> Unit {
match event {
Some(value) =>
self.as_any()._call("writeDataPoint", [value.to_js()]) |> ignore
None => self.as_any()._call("writeDataPoint", []) |> ignore
}
}