file_query

Attribute Macro file_query 

Source
#[file_query]
Expand description

Create an edgeDB query based on a source file

ยงUsage

queries.edgeql

    insert users::User {
        name := <str>$user_name,
        age := <int16>$age,
        friend := (
            select users::User {
                name,
                age,
            }
            filter .name = <str>$friend_name
        )
    }
    use edgedb_query_derive::{file_query};
    use edgedb_query::BasicResult;
    use edgedb_query::models::edge_query::ToEdgeQuery;

    #[file_query(src="queries.edgeql")]
    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();
    }