substrait_validator/output/
primitive_data.rs1#[derive(Clone, Debug, PartialEq)]
11pub enum PrimitiveData {
12 Null,
14
15 Bool(bool),
17
18 Unsigned(u64),
20
21 Signed(i64),
23
24 Float(f64),
26
27 String(String),
29
30 Bytes(Vec<u8>),
32
33 Enum(&'static str),
35
36 Any(prost_types::Any),
38}
39
40fn hexdump(f: &mut std::fmt::Formatter<'_>, x: &[u8]) -> std::fmt::Result {
41 for (i, b) in x.iter().enumerate() {
42 if i > 0 {
43 write!(f, " ")?;
44 }
45 write!(f, "{:02X}", b)?;
46 }
47 Ok(())
48}
49
50impl std::fmt::Display for PrimitiveData {
51 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
52 match self {
53 PrimitiveData::Null => write!(f, "null"),
54 PrimitiveData::Bool(true) => write!(f, "true"),
55 PrimitiveData::Bool(false) => write!(f, "false"),
56 PrimitiveData::Unsigned(x) => write!(f, "{x}"),
57 PrimitiveData::Signed(x) => write!(f, "{x}"),
58 PrimitiveData::Float(x) => write!(f, "{x}"),
59 PrimitiveData::String(x) => write!(f, "{x:?}"),
60 PrimitiveData::Bytes(x) => hexdump(f, x),
61 PrimitiveData::Enum(x) => write!(f, "{x}"),
62 PrimitiveData::Any(x) => {
63 write!(f, "{}(", x.type_url)?;
64 hexdump(f, &x.value)?;
65 write!(f, ")")
66 }
67 }
68 }
69}