Skip to content

Commit af9e749

Browse files
committed
[FIX] use the let-else pattern to reduce indentation
1 parent b6fa49b commit af9e749

File tree

1 file changed

+48
-54
lines changed

1 file changed

+48
-54
lines changed

parquet-variant/src/to_json.rs

Lines changed: 48 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -923,15 +923,14 @@ mod tests {
923923
// Parse the JSON to verify structure - handle JSON parsing errors manually
924924
let parsed: Value = serde_json::from_str(&json)
925925
.map_err(|e| ArrowError::ParseError(format!("JSON parse error: {}", e)))?;
926-
if let Value::Object(obj) = parsed {
927-
assert_eq!(obj.get("name"), Some(&Value::String("Alice".to_string())));
928-
assert_eq!(obj.get("age"), Some(&Value::Number(30.into())));
929-
assert_eq!(obj.get("active"), Some(&Value::Bool(true)));
930-
assert!(matches!(obj.get("score"), Some(Value::Number(_))));
931-
assert_eq!(obj.len(), 4);
932-
} else {
926+
let Value::Object(obj) = parsed else {
933927
panic!("Expected JSON object");
934-
}
928+
};
929+
assert_eq!(obj.get("name"), Some(&Value::String("Alice".to_string())));
930+
assert_eq!(obj.get("age"), Some(&Value::Number(30.into())));
931+
assert_eq!(obj.get("active"), Some(&Value::Bool(true)));
932+
assert!(matches!(obj.get("score"), Some(Value::Number(_))));
933+
assert_eq!(obj.len(), 4);
935934

936935
// Test variant_to_json_value as well
937936
let json_value = variant_to_json_value(&variant)?;
@@ -1015,13 +1014,12 @@ mod tests {
10151014
assert_eq!(json, "[1,2,3,4,5]");
10161015

10171016
let json_value = variant_to_json_value(&variant)?;
1018-
if let Value::Array(arr) = json_value {
1019-
assert_eq!(arr.len(), 5);
1020-
assert_eq!(arr[0], Value::Number(1.into()));
1021-
assert_eq!(arr[4], Value::Number(5.into()));
1022-
} else {
1017+
let Value::Array(arr) = json_value else {
10231018
panic!("Expected JSON array");
1024-
}
1019+
};
1020+
assert_eq!(arr.len(), 5);
1021+
assert_eq!(arr[0], Value::Number(1.into()));
1022+
assert_eq!(arr[4], Value::Number(5.into()));
10251023

10261024
Ok(())
10271025
}
@@ -1070,16 +1068,15 @@ mod tests {
10701068

10711069
let parsed: Value = serde_json::from_str(&json)
10721070
.map_err(|e| ArrowError::ParseError(format!("JSON parse error: {}", e)))?;
1073-
if let Value::Array(arr) = parsed {
1074-
assert_eq!(arr.len(), 5);
1075-
assert_eq!(arr[0], Value::String("hello".to_string()));
1076-
assert_eq!(arr[1], Value::Number(42.into()));
1077-
assert_eq!(arr[2], Value::Bool(true));
1078-
assert_eq!(arr[3], Value::Null);
1079-
assert!(matches!(arr[4], Value::Number(_)));
1080-
} else {
1071+
let Value::Array(arr) = parsed else {
10811072
panic!("Expected JSON array");
1082-
}
1073+
};
1074+
assert_eq!(arr.len(), 5);
1075+
assert_eq!(arr[0], Value::String("hello".to_string()));
1076+
assert_eq!(arr[1], Value::Number(42.into()));
1077+
assert_eq!(arr[2], Value::Bool(true));
1078+
assert_eq!(arr[3], Value::Null);
1079+
assert!(matches!(arr[4], Value::Number(_)));
10831080

10841081
Ok(())
10851082
}
@@ -1106,14 +1103,13 @@ mod tests {
11061103
// Parse and verify all fields are present
11071104
let parsed: Value = serde_json::from_str(&json)
11081105
.map_err(|e| ArrowError::ParseError(format!("JSON parse error: {}", e)))?;
1109-
if let Value::Object(obj) = parsed {
1110-
assert_eq!(obj.len(), 3);
1111-
assert_eq!(obj.get("alpha"), Some(&Value::String("first".to_string())));
1112-
assert_eq!(obj.get("beta"), Some(&Value::String("second".to_string())));
1113-
assert_eq!(obj.get("zebra"), Some(&Value::String("last".to_string())));
1114-
} else {
1106+
let Value::Object(obj) = parsed else {
11151107
panic!("Expected JSON object");
1116-
}
1108+
};
1109+
assert_eq!(obj.len(), 3);
1110+
assert_eq!(obj.get("alpha"), Some(&Value::String("first".to_string())));
1111+
assert_eq!(obj.get("beta"), Some(&Value::String("second".to_string())));
1112+
assert_eq!(obj.get("zebra"), Some(&Value::String("last".to_string())));
11171113

11181114
Ok(())
11191115
}
@@ -1142,18 +1138,17 @@ mod tests {
11421138

11431139
let parsed: Value = serde_json::from_str(&json)
11441140
.map_err(|e| ArrowError::ParseError(format!("JSON parse error: {}", e)))?;
1145-
if let Value::Array(arr) = parsed {
1146-
assert_eq!(arr.len(), 7);
1147-
assert_eq!(arr[0], Value::String("string_value".to_string()));
1148-
assert_eq!(arr[1], Value::Number(42.into()));
1149-
assert_eq!(arr[2], Value::Bool(true));
1150-
assert!(matches!(arr[3], Value::Number(_))); // float
1151-
assert_eq!(arr[4], Value::Bool(false));
1152-
assert_eq!(arr[5], Value::Null);
1153-
assert_eq!(arr[6], Value::Number(100.into()));
1154-
} else {
1141+
let Value::Array(arr) = parsed else {
11551142
panic!("Expected JSON array");
1156-
}
1143+
};
1144+
assert_eq!(arr.len(), 7);
1145+
assert_eq!(arr[0], Value::String("string_value".to_string()));
1146+
assert_eq!(arr[1], Value::Number(42.into()));
1147+
assert_eq!(arr[2], Value::Bool(true));
1148+
assert!(matches!(arr[3], Value::Number(_))); // float
1149+
assert_eq!(arr[4], Value::Bool(false));
1150+
assert_eq!(arr[5], Value::Null);
1151+
assert_eq!(arr[6], Value::Number(100.into()));
11571152

11581153
Ok(())
11591154
}
@@ -1181,20 +1176,19 @@ mod tests {
11811176

11821177
let parsed: Value = serde_json::from_str(&json)
11831178
.map_err(|e| ArrowError::ParseError(format!("JSON parse error: {}", e)))?;
1184-
if let Value::Object(obj) = parsed {
1185-
assert_eq!(obj.len(), 6);
1186-
assert_eq!(
1187-
obj.get("string_field"),
1188-
Some(&Value::String("test_string".to_string()))
1189-
);
1190-
assert_eq!(obj.get("int_field"), Some(&Value::Number(123.into())));
1191-
assert_eq!(obj.get("bool_field"), Some(&Value::Bool(true)));
1192-
assert!(matches!(obj.get("float_field"), Some(Value::Number(_))));
1193-
assert_eq!(obj.get("null_field"), Some(&Value::Null));
1194-
assert_eq!(obj.get("long_field"), Some(&Value::Number(999.into())));
1195-
} else {
1179+
let Value::Object(obj) = parsed else {
11961180
panic!("Expected JSON object");
1197-
}
1181+
};
1182+
assert_eq!(obj.len(), 6);
1183+
assert_eq!(
1184+
obj.get("string_field"),
1185+
Some(&Value::String("test_string".to_string()))
1186+
);
1187+
assert_eq!(obj.get("int_field"), Some(&Value::Number(123.into())));
1188+
assert_eq!(obj.get("bool_field"), Some(&Value::Bool(true)));
1189+
assert!(matches!(obj.get("float_field"), Some(Value::Number(_))));
1190+
assert_eq!(obj.get("null_field"), Some(&Value::Null));
1191+
assert_eq!(obj.get("long_field"), Some(&Value::Number(999.into())));
11981192

11991193
Ok(())
12001194
}

0 commit comments

Comments
 (0)