cynic_parser_deser/value/
mod.rs

1mod enums;
2mod lists;
3mod objects;
4mod scalars;
5#[allow(clippy::module_inception)]
6mod value;
7
8use std::fmt::Display;
9
10use cynic_parser::ConstValue;
11pub use {
12    enums::EnumValue,
13    lists::{List, ListIter},
14    objects::{FieldIter, Object, ObjectField},
15    scalars::{BooleanValue, FloatValue, IntValue, NullValue, StringValue},
16    value::DeserValue,
17};
18
19#[derive(Debug, PartialEq, Eq, Clone, Copy)]
20pub enum ValueType {
21    Int,
22    Float,
23    String,
24    Boolean,
25    Null,
26    Enum,
27    List,
28    Object,
29}
30
31impl Display for ValueType {
32    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
33        write!(f, "{self:?}")
34    }
35}
36
37impl From<DeserValue<'_>> for ValueType {
38    fn from(value: DeserValue<'_>) -> Self {
39        match value {
40            DeserValue::Int(_) => ValueType::Int,
41            DeserValue::Float(_) => ValueType::Float,
42            DeserValue::String(_) => ValueType::String,
43            DeserValue::Boolean(_) => ValueType::Boolean,
44            DeserValue::Null(_) => ValueType::Null,
45            DeserValue::Enum(_) => ValueType::Enum,
46            DeserValue::List(_) => ValueType::List,
47            DeserValue::Object(_) => ValueType::Object,
48        }
49    }
50}
51
52impl From<ConstValue<'_>> for ValueType {
53    fn from(value: ConstValue<'_>) -> Self {
54        match value {
55            ConstValue::Int(_) => ValueType::Int,
56            ConstValue::Float(_) => ValueType::Float,
57            ConstValue::String(_) => ValueType::String,
58            ConstValue::Boolean(_) => ValueType::Boolean,
59            ConstValue::Null(_) => ValueType::Null,
60            ConstValue::Enum(_) => ValueType::Enum,
61            ConstValue::List(_) => ValueType::List,
62            ConstValue::Object(_) => ValueType::Object,
63        }
64    }
65}