use segment::message::{Track, User};
use segment::{Batcher, Client, HttpClient};
use serde_json::json;
#[tokio::main(flavor = "current_thread")]
async fn main() {
let write_key = "YOUR_WRITE_KEY";
let client = HttpClient::default();
let mut batcher = Batcher::new(None);
for i in 0..10 {
let msg = Track {
user: User::UserId {
user_id: format!("user-{}", i),
},
event: "Batched Event".to_owned(),
properties: json!({
"foo": format!("bar-{}", i),
}),
..Default::default()
};
if let Some(msg) = batcher.push(msg).unwrap() {
client
.send(write_key.to_string(), batcher.into_message())
.await
.unwrap();
batcher = Batcher::new(None);
batcher.push(msg).unwrap(); }
}
client
.send(write_key.to_string(), batcher.into_message())
.await
.unwrap();
}