reql 0.11.2

A native ReQL driver
Documentation
use futures::TryStreamExt;
use reql::{func, r};
use serde_json::Value;

#[tokio::test]
async fn index_create() -> reql::Result<()> {
    tracing_subscriber::fmt::init();

    let conn = r.connect(()).await?;

    let _ = r
        .table_create("comments")
        .run::<_, Value>(&conn)
        .try_next()
        .await;

    let _ = r
        .table("comments")
        .index_drop("author_name")
        .run::<_, Value>(&conn)
        .try_next()
        .await;

    let _ = r
        .table("comments")
        .index_create(r.args((
            "author_name",
            func!(|doc| doc.bracket("author").bracket("name")),
        )))
        .run::<_, Value>(&conn)
        .try_next()
        .await?;

    let _ = r
        .table("comments")
        .index_drop("post_and_date")
        .run::<_, Value>(&conn)
        .try_next()
        .await;

    let _ = r
        .table("comments")
        .index_create(r.args((
            "post_and_date",
            func!(|doc| [doc.clone().bracket("post_id"), doc.bracket("date")]),
        )))
        .run::<_, Value>(&conn)
        .try_next()
        .await?;

    Ok(())
}