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