gelx 0.8.5

Generate fully typed rust code from your gel schema and inline queries.
Documentation
---
source: crates/gelx/tests/codegen.rs
expression: "&content"
---
pub mod example {
    use ::gelx::exports as __g;
    /// Execute the desired query.
    pub async fn query(
        client: &__g::gel_tokio::Client,
        props: &Input,
    ) -> ::core::result::Result<Vec<Output>, __g::gel_errors::Error> {
        client.query(QUERY, props).await
    }
    /// Compose the query as part of a larger transaction.
    pub async fn transaction(
        conn: &mut __g::gel_tokio::Transaction,
        props: &Input,
    ) -> ::core::result::Result<Vec<Output>, __g::gel_errors::Error> {
        conn.query(QUERY, props).await
    }
    #[derive(::std::fmt::Debug, ::core::clone::Clone)]
    pub struct Input {
        pub starts_with: String,
        pub ends_with: String,
    }
    impl __g::gel_protocol::query_arg::QueryArgs for Input {
        fn encode(
            &self,
            encoder: &mut __g::gel_protocol::query_arg::Encoder,
        ) -> core::result::Result<(), __g::gel_errors::Error> {
            let map = __g::gel_protocol::named_args! {
                "starts_with" => self.starts_with.clone(), "ends_with" => self.ends_with
                .clone(),
            };
            map.encode(encoder)
        }
    }
    #[derive(::std::fmt::Debug, ::core::clone::Clone)]
    pub struct OutputWalletsSet {
        pub created_at: __g::DateTimeAlias,
        pub id: __g::uuid::Uuid,
        pub updated_at: __g::DateTimeAlias,
        pub primary: bool,
        pub description: Option<String>,
        pub name: Option<String>,
        pub pubkey: String,
    }
    #[derive(::std::fmt::Debug, ::core::clone::Clone)]
    pub struct Output {
        pub slug: String,
        pub id: __g::uuid::Uuid,
        pub created_at: __g::DateTimeAlias,
        pub updated_at: __g::DateTimeAlias,
        pub description: Option<String>,
        pub name: String,
        pub wallets: Vec<OutputWalletsSet>,
    }
    /// The original query string provided to the macro. Can be reused in your codebase.
    pub const QUERY: &str = "select Team {**} filter .name like <str>$starts_with ++ '%' and .description like '%' ++ <str>$ends_with;";
}