statsig-rust 0.19.1-beta.2604110309

Statsig Rust SDK for usage in multi-user server environments.
Documentation
use crate::event_logging::statsig_event_internal::StatsigEventInternal;
use crate::log_event_payload::{LogEventPayload, LogEventRequest};
use crate::statsig_metadata::StatsigMetadataWithLogEventExtras;
use serde_json::json;

pub struct EventBatch {
    pub attempts: u8,
    pub events: Vec<StatsigEventInternal>,
}

impl EventBatch {
    pub fn new(events: Vec<StatsigEventInternal>) -> Self {
        Self {
            events,
            attempts: 0,
        }
    }

    pub fn get_log_event_request(
        &self,
        statsig_metadata: StatsigMetadataWithLogEventExtras,
    ) -> LogEventRequest {
        let payload = LogEventPayload {
            events: json!(self.events),
            statsig_metadata: json!(statsig_metadata),
        };

        LogEventRequest {
            payload,
            event_count: self.events.len() as u64,
            retries: self.attempts as u32,
        }
    }
}