1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use cynic::{Operation, OperationBuilder};

use crate::{CapabilitySet, IntrospectionQuery, SpecificationVersion};

impl IntrospectionQuery {
    /// Builds an IntrospectionQuery for a server with the given capabilities
    pub fn with_capabilities(capabilities: CapabilitySet) -> Operation<Self, ()> {
        let mut builder = OperationBuilder::query().with_variables(());
        match capabilities.specification_version {
            SpecificationVersion::Unknown | SpecificationVersion::June2018 => {}
            SpecificationVersion::October2021 => builder.enable_feature("2021"),
        }
        builder.build().expect("to succeed")
    }
}