get_latest_record/
get_latest_record.rs1use s2::{
2 client::{ClientConfig, StreamClient},
3 types::{BasinName, ReadLimit, ReadRequest},
4};
5
6#[tokio::main]
7async fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let token = std::env::var("S2_ACCESS_TOKEN")?;
9 let config = ClientConfig::new(token);
10 let basin: BasinName = "my-favorite-basin".parse()?;
11 let stream = "my-favorite-stream";
12 let stream_client = StreamClient::new(config, basin, stream);
13
14 let tail = stream_client.check_tail().await?;
15 if tail == 0 {
16 println!("Empty stream");
17 return Ok(());
18 }
19
20 let latest_seq_num = tail - 1;
21
22 let read_limit = ReadLimit {
23 count: Some(1),
24 bytes: None,
25 };
26 let read_request = ReadRequest::new(latest_seq_num).with_limit(read_limit);
27 let latest_record = stream_client.read(read_request).await?;
28
29 println!("{latest_record:#?}");
30
31 Ok(())
32}