scm-sdk 0.2.3

Native async Strata Cloud Manager SDK, beginning with Prisma AIRS
Documentation
use scm_sdk::{
    RequestOptions, Session,
    pagination::{CollectOptions, Page, Pages},
};
use std::time::Duration;

#[tokio::main(flavor = "current_thread")]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let options = RequestOptions::with_timeout(Duration::from_secs(5))?;
    let pages = Pages::new(
        0u64,
        options,
        Session::new(),
        100,
        |cursor, _options| async move {
            Ok(Page {
                items: vec![cursor, cursor + 1],
                next: if cursor < 4 { Some(cursor + 2) } else { None },
            })
        },
    )?;
    let collection = pages
        .collect(CollectOptions::default().with_max_items(3)?)
        .await?;
    println!(
        "items={} complete={} resumable={}",
        collection.items.len(),
        collection.is_complete(),
        collection.resume.is_some()
    );
    Ok(())
}