[][src]Attribute Macro async_graphql::Enum

#[Enum]

Define a GraphQL enum

You can also derive this.

See also the Book.

Macro parameters

AttributedescriptionTypeOptional
nameEnum namestringY
descEnum descriptionstringY

Item parameters

AttributedescriptionTypeOptional
nameItem namestringY
descItem descriptionstringY
deprecationItem deprecation reasonstringY

Examples

use async_graphql::*;

#[Enum]
enum MyEnum {
    A,
    #[item(name = "b")] B,
}

struct QueryRoot {
    value1: MyEnum,
    value2: MyEnum,
}

#[Object]
impl QueryRoot {
    #[field(desc = "value")]
    async fn value1(&self) -> MyEnum {
        self.value1
    }

    #[field(desc = "value")]
    async fn value2(&self) -> MyEnum {
        self.value2
    }
}

async_std::task::block_on(async move {
    let schema = Schema::new(QueryRoot{ value1: MyEnum::A, value2: MyEnum::B }, EmptyMutation, EmptySubscription);
    let res = schema.execute("{ value1 value2 }").await.unwrap().data;
    assert_eq!(res, serde_json::json!({ "value1": "A", "value2": "b" }));
});