[][src]Attribute Macro async_graphql::Enum

#[Enum]

Define a GraphQL enum

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::main]
async fn main() {
    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" }));
}