cynic_parser_deser/value/
mod.rs1mod 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}