colink 0.3.10

CoLink Rust SDK
Documentation
use colink::{decode_jwt_without_validation, CoLink, Participant};
use std::env;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync + 'static>> {
    let args = env::args().skip(1).collect::<Vec<_>>();
    let addr = &args[0];
    let jwt_initiator = &args[1];
    let msg = "hello";
    let user_id_initiator = decode_jwt_without_validation(jwt_initiator)
        .unwrap()
        .user_id;

    let mut participants = vec![Participant {
        user_id: user_id_initiator.to_string(),
        role: "initiator".to_string(),
    }];
    for i in 2..args.len() {
        participants.push(Participant {
            user_id: decode_jwt_without_validation(&args[i])
                .unwrap()
                .user_id
                .to_string(),
            role: "receiver".to_string(),
        });
    }

    let cl = CoLink::new(addr, jwt_initiator);
    let task_id = cl
        .run_task("greetings", msg.as_bytes(), &participants, true)
        .await?;
    println!(
        "Task {} has been created, but it will remain in waiting status until the protocol starts.",
        task_id
    );

    Ok(())
}