rusty_gql/types/
interface.rs1use graphql_parser::{schema::InterfaceType as ParserInterfaceType, Pos};
2
3use super::{directive::GqlDirective, field::FieldType};
4
5#[derive(Debug, Clone)]
6pub struct InterfaceType {
7 pub name: String,
8 pub description: Option<String>,
9 pub position: Pos,
10 pub directives: Vec<GqlDirective>,
11 pub fields: Vec<FieldType>,
12}
13
14impl<'a> From<ParserInterfaceType<'a, String>> for InterfaceType {
15 fn from(interface_type: ParserInterfaceType<'a, String>) -> Self {
16 let directives = GqlDirective::from_vec_directive(interface_type.directives);
17 let fields = interface_type
18 .fields
19 .into_iter()
20 .map(FieldType::from)
21 .collect();
22
23 InterfaceType {
24 name: interface_type.name,
25 description: interface_type.description,
26 position: interface_type.position,
27 directives,
28 fields,
29 }
30 }
31}