in parquet/src/record/api.rs [731:799]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
Field::Null => write!(f, "null"),
Field::Bool(value) => write!(f, "{value}"),
Field::Byte(value) => write!(f, "{value}"),
Field::Short(value) => write!(f, "{value}"),
Field::Int(value) => write!(f, "{value}"),
Field::Long(value) => write!(f, "{value}"),
Field::UByte(value) => write!(f, "{value}"),
Field::UShort(value) => write!(f, "{value}"),
Field::UInt(value) => write!(f, "{value}"),
Field::ULong(value) => write!(f, "{value}"),
Field::Float(value) => {
if !(1e-15..=1e19).contains(&value) {
write!(f, "{value:E}")
} else if value.trunc() == value {
write!(f, "{value}.0")
} else {
write!(f, "{value}")
}
}
Field::Double(value) => {
if !(1e-15..=1e19).contains(&value) {
write!(f, "{value:E}")
} else if value.trunc() == value {
write!(f, "{value}.0")
} else {
write!(f, "{value}")
}
}
Field::Decimal(ref value) => {
write!(f, "{}", convert_decimal_to_string(value))
}
Field::Str(ref value) => write!(f, "\"{value}\""),
Field::Bytes(ref value) => write!(f, "{:?}", value.data()),
Field::Date(value) => write!(f, "{}", convert_date_to_string(value)),
Field::TimestampMillis(value) => {
write!(f, "{}", convert_timestamp_millis_to_string(value))
}
Field::TimestampMicros(value) => {
write!(f, "{}", convert_timestamp_micros_to_string(value))
}
Field::Group(ref fields) => write!(f, "{fields}"),
Field::ListInternal(ref list) => {
let elems = &list.elements;
write!(f, "[")?;
for (i, field) in elems.iter().enumerate() {
field.fmt(f)?;
if i < elems.len() - 1 {
write!(f, ", ")?;
}
}
write!(f, "]")
}
Field::MapInternal(ref map) => {
let entries = &map.entries;
write!(f, "{{")?;
for (i, (key, value)) in entries.iter().enumerate() {
key.fmt(f)?;
write!(f, " -> ")?;
value.fmt(f)?;
if i < entries.len() - 1 {
write!(f, ", ")?;
}
}
write!(f, "}}")
}
}
}