list_all_basins/
list_all_basins.rs1use s2::{
2 client::{Client, ClientConfig},
3 types::ListBasinsRequest,
4};
5
6#[tokio::main]
7async fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let token = std::env::var("S2_AUTH_TOKEN")?;
9 let config = ClientConfig::new(token);
10 let client = Client::new(config);
11
12 let mut all_basins = Vec::new();
13
14 let mut has_more = true;
15 let mut start_after: Option<String> = None;
16
17 while has_more {
18 let mut list_basins_request = ListBasinsRequest::new();
19 if let Some(start_after) = start_after.take() {
20 list_basins_request = list_basins_request.with_start_after(start_after);
21 }
22
23 let list_basins_response = client.list_basins(list_basins_request).await?;
24
25 all_basins.extend(list_basins_response.basins);
26
27 start_after = all_basins.last().map(|b| b.name.clone());
28 has_more = list_basins_response.has_more;
29 }
30
31 println!("{all_basins:#?}");
32
33 Ok(())
34}