statsig_rust/event_logging/event_queue/
batch.rs1use crate::event_logging::statsig_event_internal::StatsigEventInternal;
2use crate::log_event_payload::{LogEventPayload, LogEventRequest};
3use crate::statsig_metadata::StatsigMetadataWithLogEventExtras;
4use serde_json::json;
5
6pub struct EventBatch {
7 pub attempts: u8,
8 pub events: Vec<StatsigEventInternal>,
9}
10
11impl EventBatch {
12 pub fn new(events: Vec<StatsigEventInternal>) -> Self {
13 Self {
14 events,
15 attempts: 0,
16 }
17 }
18
19 pub fn get_log_event_request(
20 &self,
21 statsig_metadata: StatsigMetadataWithLogEventExtras,
22 ) -> LogEventRequest {
23 let payload = LogEventPayload {
24 events: json!(self.events),
25 statsig_metadata: json!(statsig_metadata),
26 };
27
28 LogEventRequest {
29 payload,
30 event_count: self.events.len() as u64,
31 retries: self.attempts as u32,
32 }
33 }
34}