posthog514client_rs/
lib.rs

1//! PostHog client library for Rust
2//!
3//! This crate provides a client for interacting with PostHog analytics.
4
5pub mod client;
6pub mod error;
7pub mod event;
8
9#[cfg(feature = "blocking")]
10mod blocking;
11
12pub use client::{Config, PostHog514Client, PostHogClient};
13pub use error::{ConfigErrorKind, PostHogError, SendEventErrorKind};
14pub use event::{Event514, EventType, MooseEventType};
15
16#[cfg(feature = "blocking")]
17pub use blocking::BlockingPostHog514Client;
18
19#[cfg(test)]
20mod tests {
21    use super::*;
22
23    #[tokio::test]
24    async fn test_basic_event_capture() {
25        let client = PostHogClient::new("test_key", "https://app.posthog.com").unwrap();
26        let event = Event514::new_moose(MooseEventType::MooseCliCommand)
27            .with_distinct_id("test_user")
28            .with_properties([("test".to_string(), "value".into())].into());
29
30        assert!(client.capture(event).await.is_err());
31    }
32}