| 384 | // Implement Display trait for ColumnarValue |
| 385 | impl fmt::Display for ColumnarValue { |
| 386 | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { |
| 387 | let formatted = match self { |
| 388 | ColumnarValue::Array(array) => { |
| 389 | pretty_format_columns("ColumnarValue(ArrayRef)", &[Arc::clone(array)]) |
| 390 | } |
| 391 | ColumnarValue::Scalar(_) => { |
| 392 | if let Ok(array) = self.to_array(1) { |
| 393 | pretty_format_columns("ColumnarValue(ScalarValue)", &[array]) |
| 394 | } else { |
| 395 | return write!(f, "Error formatting columnar value"); |
| 396 | } |
| 397 | } |
| 398 | }; |
| 399 | |
| 400 | if let Ok(formatted) = formatted { |
| 401 | write!(f, "{formatted}") |
| 402 | } else { |
| 403 | write!(f, "Error formatting columnar value") |
| 404 | } |
| 405 | } |
| 406 | } |
| 407 | |
| 408 | #[cfg(test)] |