query

Attribute Macro query 

Source
#[query]
Expand description

Create an edgeDB query based on a source file

ยงUsage

    use edgedb_query_derive::{query};
    use edgedb_query::BasicResult;
    use edgedb_query::models::edge_query::ToEdgeQuery;

    #[query(value=r#"
        insert users::User {
            name := <str>$user_name,
            age := <int16>$age,
            friend := (
                select users::User {
                    name,
                    age,
                }
            filter .name = <str>$friend_name
            )
        }"#
    )]
    pub struct AddUser {
        #[param("user_name")]
        pub name: String,
        pub age: i8,
        #[param("friend_name")]
        pub friend: String,
    }

    async fn main() {

        let client = edgedb_tokio::create_client().await.unwrap();

        let add_user = AddUser {
            name: "Joe".to_string(),
            age: 18,
            friend: "Henri".to_string(),
        };

        let query = add_user.to_edge_query();

        let result = client
                .query_single::<BasicResult, _>(query.query.as_str(), &query.args.unwrap())
                .await
                .unwrap();
    }