Skip to content

Commit fbb1f65

Browse files
authored
Migrate parquet-variant-json to Rust 2024 (#8512)
# Which issue does this PR close? - Contribute to #6827 # Rationale for this change Splitting up #8227. # What changes are included in this PR? Migrate `parquet-variant-json` to Rust 2024 # Are these changes tested? CI # Are there any user-facing changes? Yes
1 parent a82e340 commit fbb1f65

File tree

3 files changed

+43
-29
lines changed

3 files changed

+43
-29
lines changed

parquet-variant-json/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ repository = { workspace = true }
2727
authors = { workspace = true }
2828
keywords = ["arrow", "parquet", "variant"]
2929
readme = "../parquet-variant/README.md"
30-
edition = { workspace = true }
30+
edition = "2024"
3131
rust-version = { workspace = true }
3232

3333

parquet-variant-json/src/from_json.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ mod test {
135135
use crate::VariantToJson;
136136
use arrow_schema::ArrowError;
137137
use parquet_variant::{
138-
ShortString, Variant, VariantBuilder, VariantDecimal16, VariantDecimal4, VariantDecimal8,
138+
ShortString, Variant, VariantBuilder, VariantDecimal4, VariantDecimal8, VariantDecimal16,
139139
};
140140

141141
struct JsonToVariantTest<'a> {
@@ -653,7 +653,9 @@ mod test {
653653

654654
assert_eq!(
655655
value,
656-
&[2u8, 2u8, 0u8, 1u8, 0u8, 2u8, 6u8, 12u8, 1u8, 13u8, 0xe0u8, 0xa4u8, 0x85u8]
656+
&[
657+
2u8, 2u8, 0u8, 1u8, 0u8, 2u8, 6u8, 12u8, 1u8, 13u8, 0xe0u8, 0xa4u8, 0x85u8
658+
]
657659
);
658660
assert_eq!(
659661
metadata,

parquet-variant-json/src/to_json.rs

Lines changed: 38 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
//! Module for converting Variant data to JSON format
1919
use arrow_schema::ArrowError;
20-
use base64::{engine::general_purpose, Engine as _};
20+
use base64::{Engine as _, engine::general_purpose};
2121
use chrono::Timelike;
2222
use parquet_variant::{Variant, VariantList, VariantObject};
2323
use serde_json::Value;
@@ -417,7 +417,7 @@ fn convert_array_to_json(buffer: &mut impl Write, arr: &VariantList) -> Result<(
417417
mod tests {
418418
use super::*;
419419
use chrono::{DateTime, NaiveDate, NaiveTime, Utc};
420-
use parquet_variant::{VariantDecimal16, VariantDecimal4, VariantDecimal8};
420+
use parquet_variant::{VariantDecimal4, VariantDecimal8, VariantDecimal16};
421421

422422
#[test]
423423
fn test_decimal_edge_cases() -> Result<(), ArrowError> {
@@ -1267,53 +1267,65 @@ mod tests {
12671267
let nan_variant = Variant::Float(f32::NAN);
12681268
let nan_result = nan_variant.to_json_value();
12691269
assert!(nan_result.is_err());
1270-
assert!(nan_result
1271-
.unwrap_err()
1272-
.to_string()
1273-
.contains("Invalid float value"));
1270+
assert!(
1271+
nan_result
1272+
.unwrap_err()
1273+
.to_string()
1274+
.contains("Invalid float value")
1275+
);
12741276

12751277
// Test positive infinity - should return an error since JSON doesn't support Infinity
12761278
let pos_inf_variant = Variant::Float(f32::INFINITY);
12771279
let pos_inf_result = pos_inf_variant.to_json_value();
12781280
assert!(pos_inf_result.is_err());
1279-
assert!(pos_inf_result
1280-
.unwrap_err()
1281-
.to_string()
1282-
.contains("Invalid float value"));
1281+
assert!(
1282+
pos_inf_result
1283+
.unwrap_err()
1284+
.to_string()
1285+
.contains("Invalid float value")
1286+
);
12831287

12841288
// Test negative infinity - should return an error since JSON doesn't support -Infinity
12851289
let neg_inf_variant = Variant::Float(f32::NEG_INFINITY);
12861290
let neg_inf_result = neg_inf_variant.to_json_value();
12871291
assert!(neg_inf_result.is_err());
1288-
assert!(neg_inf_result
1289-
.unwrap_err()
1290-
.to_string()
1291-
.contains("Invalid float value"));
1292+
assert!(
1293+
neg_inf_result
1294+
.unwrap_err()
1295+
.to_string()
1296+
.contains("Invalid float value")
1297+
);
12921298

12931299
// Test the same for Double variants
12941300
let nan_double_variant = Variant::Double(f64::NAN);
12951301
let nan_double_result = nan_double_variant.to_json_value();
12961302
assert!(nan_double_result.is_err());
1297-
assert!(nan_double_result
1298-
.unwrap_err()
1299-
.to_string()
1300-
.contains("Invalid double value"));
1303+
assert!(
1304+
nan_double_result
1305+
.unwrap_err()
1306+
.to_string()
1307+
.contains("Invalid double value")
1308+
);
13011309

13021310
let pos_inf_double_variant = Variant::Double(f64::INFINITY);
13031311
let pos_inf_double_result = pos_inf_double_variant.to_json_value();
13041312
assert!(pos_inf_double_result.is_err());
1305-
assert!(pos_inf_double_result
1306-
.unwrap_err()
1307-
.to_string()
1308-
.contains("Invalid double value"));
1313+
assert!(
1314+
pos_inf_double_result
1315+
.unwrap_err()
1316+
.to_string()
1317+
.contains("Invalid double value")
1318+
);
13091319

13101320
let neg_inf_double_variant = Variant::Double(f64::NEG_INFINITY);
13111321
let neg_inf_double_result = neg_inf_double_variant.to_json_value();
13121322
assert!(neg_inf_double_result.is_err());
1313-
assert!(neg_inf_double_result
1314-
.unwrap_err()
1315-
.to_string()
1316-
.contains("Invalid double value"));
1323+
assert!(
1324+
neg_inf_double_result
1325+
.unwrap_err()
1326+
.to_string()
1327+
.contains("Invalid double value")
1328+
);
13171329

13181330
// Test normal float values still work
13191331
let normal_float = Variant::Float(std::f32::consts::PI);

0 commit comments

Comments
 (0)