macro_rules! downcast_primitive_array {
    ($values:ident => $e:expr, $($p:pat => $fallback:expr $(,)*)*) => { ... };
    ($values:ident => $e:block $($p:pat => $fallback:expr $(,)*)*) => { ... };
    (($values1:ident, $values2:ident) => $e:block $($p:pat => $fallback:expr $(,)*)*) => { ... };
}
Expand description

Downcast an Array to a PrimitiveArray based on its DataType, accepts a number of subsequent patterns to match the data type


fn print_primitive(array: &dyn Array) {
    downcast_primitive_array!(
        array => {
            for v in array {
                println!("{:?}", v);
            }
        }
        DataType::Utf8 => {
            for v in as_string_array(array) {
                println!("{:?}", v);
            }
        }
        t => println!("Unsupported datatype {}", t)
    )
}