rusty_gql/types/
object.rs

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