cynic_parser/schema_coordinates/
member.rs1use std::fmt;
2
3use crate::Span;
4
5use super::{Name, TypeCoordinate};
6
7#[derive(Clone, Debug, PartialEq, Eq, Hash, Ord, PartialOrd)]
8pub struct MemberCoordinate {
9 pub(super) ty: TypeCoordinate,
10 pub(super) name: Name,
11}
12
13impl MemberCoordinate {
14 pub fn new(ty: impl Into<String>, field: impl Into<String>) -> Self {
15 MemberCoordinate {
16 ty: TypeCoordinate::new(ty),
17 name: Name::new(field.into()),
18 }
19 }
20
21 pub fn ty(&self) -> &TypeCoordinate {
22 &self.ty
23 }
24
25 pub fn span(&self) -> Span {
26 self.name.span
27 }
28
29 pub fn name(&self) -> &str {
30 &self.name.value
31 }
32}
33
34impl fmt::Display for MemberCoordinate {
35 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
36 write!(f, "{}.{}", self.ty.name.value, self.name.value)
37 }
38}