fn structural_equality(l: &ScalarType, r: &ScalarType) -> bool {
        use ScalarType::*;
        match (l, r) {
            (Array(l), Array(r))
            | (
                List {
                    element_type: l, ..
                },
                List {
                    element_type: r, ..
                },
            )
            | (Map { value_type: l, .. }, Map { value_type: r, .. }) => structural_equality(&l, &r),
            (l, r) => l == r,
        }
    }
// Determines if types are equal irrespective of any custom types.
Determines if types are equal irrespective of any custom types.
Determines if types are equal irrespective of any custom types .
fn structural_equality(l: &ScalarType, r: &ScalarType) -> bool {
        use ScalarType::*;
        match (l, r) {
            (Array(l), Array(r))
            | (
                List {
                    element_type: l, ..
                },
                List {
                    element_type: r, ..
                },
            )
            | (Map { value_type: l, .. }, Map { value_type: r, .. }) => structural_equality(&l, &r),
            (l, r) => l == r,
        }
    }
fn structural_equality ( l : & ScalarType , r : & ScalarType ) -> bool { use ScalarType :: * ; match ( l , r ) { ( Array ( l ) , Array ( r ) ) | ( List { element_type : l , .. } , List { element_type : r , .. } , ) | ( Map { value_type : l , .. } , Map { value_type : r , .. } ) => structural_equality ( & l , & r ) , ( l , r ) => l == r , } }
Determines if types are equal irrespective of any custom types.
Determines if types are equal irrespective of any custom types .
l
&ScalarType
r
&ScalarType
l
&ScalarType
r
&ScalarType