dynamic_lists_simple/
dynamic_lists_simple.rs

1/*
2    assume the model is created using:
3
4    > create space myapp
5    > create model myapp.mydb(username: string, password: string, data: [string])
6*/
7
8use skytable::{query::QList, response::RList, Config};
9
10fn get_list_data_from_api() -> Vec<String> {
11    vec![
12        "stuff".to_owned(),
13        "from".to_owned(),
14        "the".to_owned(),
15        "api".to_owned(),
16    ]
17}
18
19fn main() {
20    let mut db = Config::new_default("root", "password12345678")
21        .connect()
22        .unwrap();
23    let data_from_api = get_list_data_from_api();
24    let q = skytable::query!(
25        "insert into myapp.mydb { username: ?, password: ?, data: ? }",
26        "sayan",
27        "ulw06afuMCAg+1gh2lh1Y9xTIr/dUv2vqGLeZ39cVrE=",
28        QList::new(&data_from_api)
29    );
30    db.query_parse::<()>(&q).unwrap(); // expect this data to be inserted correctly
31                                       // now fetch this data
32    let (username, password, data): (String, String, RList<String>) = db
33        .query_parse(&skytable::query!(
34            "select * from myapp.mydb where username = ?",
35            "sayan"
36        ))
37        .unwrap();
38    assert_eq!(username, "sayan");
39    assert_eq!(password, "ulw06afuMCAg+1gh2lh1Y9xTIr/dUv2vqGLeZ39cVrE=");
40    assert_eq!(data.into_values(), data_from_api);
41}