myid 0.1.10

Rust client library for MyID SDK API — user identification and verification
Documentation
use myid::prelude::*;
use std::time::Instant;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let cfg = Config::from_env(None)?;
    let client = MyIdClient::new(cfg)?;

    let n: usize = std::env::var("N")
        .ok()
        .and_then(|v| v.parse().ok())
        .unwrap_or(500);

    let started = Instant::now();
    let mut tasks = Vec::with_capacity(n);

    for _ in 0..n {
        let c = client.clone();
        tasks.push(tokio::spawn(async move { c.get_token().await }));
    }

    let mut ok = 0usize;
    let mut err = 0usize;

    for t in tasks {
        match t.await? {
            Ok(_) => ok += 1,
            Err(e) => {
                err += 1;
                eprintln!("get_token error: {e}");
            }
        }
    }

    println!(
        "N={n} ok={ok} err={err} elapsed_ms={}",
        started.elapsed().as_millis()
    );

    Ok(())
}