Skip to content

Commit c712747

Browse files
committed
[FIX] fix formatting issues
1 parent be50708 commit c712747

File tree

8 files changed

+526
-305
lines changed

8 files changed

+526
-305
lines changed
Lines changed: 60 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
use arrow::array::Array;
2-
use parquet_variant_compute::VariantArrayBuilder;
32
use parquet_variant::VariantBuilder;
3+
use parquet_variant_compute::VariantArrayBuilder;
44

55
fn main() {
66
// Create some sample data with fields to remove
77
let mut builder = VariantArrayBuilder::new(2);
8-
8+
99
// Row 1: User with temporary data
1010
{
1111
let mut variant_builder = VariantBuilder::new();
@@ -15,21 +15,21 @@ fn main() {
1515
obj.insert("age", 30i32);
1616
obj.insert("temp_session", "abc123");
1717
obj.insert("debug_info", "temporary debug data");
18-
18+
1919
{
2020
let mut address = obj.new_object("address");
2121
address.insert("city", "New York");
2222
address.insert("zip", "10001");
2323
address.insert("temp_geocode", "40.7128,-74.0060");
2424
let _ = address.finish();
2525
}
26-
26+
2727
let _ = obj.finish();
2828
}
2929
let (metadata, value) = variant_builder.finish();
3030
builder.append_variant_buffers(&metadata, &value);
3131
}
32-
32+
3333
// Row 2: Another user with temporary data
3434
{
3535
let mut variant_builder = VariantBuilder::new();
@@ -39,72 +39,106 @@ fn main() {
3939
obj.insert("age", 25i32);
4040
obj.insert("temp_session", "def456");
4141
obj.insert("debug_info", "more temporary data");
42-
42+
4343
{
4444
let mut address = obj.new_object("address");
4545
address.insert("city", "San Francisco");
4646
address.insert("zip", "94102");
4747
address.insert("temp_geocode", "37.7749,-122.4194");
4848
let _ = address.finish();
4949
}
50-
50+
5151
let _ = obj.finish();
5252
}
5353
let (metadata, value) = variant_builder.finish();
5454
builder.append_variant_buffers(&metadata, &value);
5555
}
56-
56+
5757
let array = builder.finish();
58-
58+
5959
println!("=== Field Removal Examples ===");
60-
60+
6161
// Show original data
6262
println!("Original data:");
6363
for i in 0..array.len() {
6464
let variant = array.value(i);
6565
if let Some(obj) = variant.as_object() {
6666
let name = obj.get("name").unwrap().as_string().unwrap().to_string();
67-
let session = obj.get("temp_session").map(|v| v.as_string().unwrap().to_string()).unwrap_or("None".to_string());
68-
let debug = obj.get("debug_info").map(|v| v.as_string().unwrap().to_string()).unwrap_or("None".to_string());
67+
let session = obj
68+
.get("temp_session")
69+
.map(|v| v.as_string().unwrap().to_string())
70+
.unwrap_or("None".to_string());
71+
let debug = obj
72+
.get("debug_info")
73+
.map(|v| v.as_string().unwrap().to_string())
74+
.unwrap_or("None".to_string());
6975
println!(" {}: session={}, debug={}", name, session, debug);
7076
}
7177
}
72-
78+
7379
// Remove temporary session field
7480
let cleaned_array = array.with_field_removed("temp_session").unwrap();
75-
81+
7682
println!("\nRemoving temporary session fields...");
7783
println!("After removing temp_session:");
7884
for i in 0..cleaned_array.len() {
7985
let variant = cleaned_array.value(i);
8086
if let Some(obj) = variant.as_object() {
8187
let name = obj.get("name").unwrap().as_string().unwrap().to_string();
82-
let session = obj.get("temp_session").map(|v| v.as_string().unwrap().to_string()).unwrap_or("None".to_string());
83-
let debug = obj.get("debug_info").map(|v| v.as_string().unwrap().to_string()).unwrap_or("None".to_string());
88+
let session = obj
89+
.get("temp_session")
90+
.map(|v| v.as_string().unwrap().to_string())
91+
.unwrap_or("None".to_string());
92+
let debug = obj
93+
.get("debug_info")
94+
.map(|v| v.as_string().unwrap().to_string())
95+
.unwrap_or("None".to_string());
8496
println!(" {}: session={}, debug={}", name, session, debug);
8597
}
8698
}
87-
99+
88100
// Remove multiple temporary fields
89-
let final_array = cleaned_array.with_fields_removed(&["debug_info", "temp_session"]).unwrap();
90-
101+
let final_array = cleaned_array
102+
.with_fields_removed(&["debug_info", "temp_session"])
103+
.unwrap();
104+
91105
println!("\nRemoving multiple temporary fields...");
92106
println!("Final clean data:");
93107
for i in 0..final_array.len() {
94108
let variant = final_array.value(i);
95109
if let Some(obj) = variant.as_object() {
96110
let name = obj.get("name").unwrap().as_string().unwrap().to_string();
97111
let age = obj.get("age").unwrap().as_int32().unwrap();
98-
112+
99113
if let Some(address) = obj.get("address") {
100114
if let Some(addr_obj) = address.as_object() {
101-
let city = addr_obj.get("city").unwrap().as_string().unwrap().to_string();
102-
let zip = addr_obj.get("zip").unwrap().as_string().unwrap().to_string();
103-
let geocode = addr_obj.get("temp_geocode").map(|v| format!("Some(ShortString(ShortString(\"{}\")))", v.as_string().unwrap())).unwrap_or("None".to_string());
104-
println!(" {}: age={}, city={}, zip={}, geocode={}", name, age, city, zip, geocode);
115+
let city = addr_obj
116+
.get("city")
117+
.unwrap()
118+
.as_string()
119+
.unwrap()
120+
.to_string();
121+
let zip = addr_obj
122+
.get("zip")
123+
.unwrap()
124+
.as_string()
125+
.unwrap()
126+
.to_string();
127+
let geocode = addr_obj
128+
.get("temp_geocode")
129+
.map(|v| {
130+
format!(
131+
"Some(ShortString(ShortString(\"{}\")))",
132+
v.as_string().unwrap()
133+
)
134+
})
135+
.unwrap_or("None".to_string());
136+
println!(
137+
" {}: age={}, city={}, zip={}, geocode={}",
138+
name, age, city, zip, geocode
139+
);
105140
}
106141
}
107142
}
108143
}
109-
110-
}
144+
}
Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,97 @@
1-
use parquet_variant_compute::{VariantArrayBuilder, VariantPath};
21
use parquet_variant::VariantBuilder;
2+
use parquet_variant_compute::{VariantArrayBuilder, VariantPath};
33

44
fn main() {
55
// Create some sample data
66
let mut builder = VariantArrayBuilder::new(2);
7-
7+
88
// Row 1: User Alice
99
{
1010
let mut variant_builder = VariantBuilder::new();
1111
{
1212
let mut obj = variant_builder.new_object();
1313
obj.insert("name", "Alice");
1414
obj.insert("age", 30i32);
15-
15+
1616
{
1717
let mut address = obj.new_object("address");
1818
address.insert("city", "New York");
1919
address.insert("zip", "10001");
2020
let _ = address.finish();
2121
}
22-
22+
2323
{
2424
let mut hobbies = obj.new_list("hobbies");
2525
hobbies.append_value("reading");
2626
hobbies.append_value("hiking");
2727
hobbies.append_value("cooking");
2828
hobbies.finish();
2929
}
30-
30+
3131
obj.finish().unwrap();
3232
}
3333
let (metadata, value) = variant_builder.finish();
3434
builder.append_variant_buffers(&metadata, &value);
3535
}
36-
36+
3737
// Row 2: User Bob
3838
{
3939
let mut variant_builder = VariantBuilder::new();
4040
{
4141
let mut obj = variant_builder.new_object();
4242
obj.insert("name", "Bob");
4343
obj.insert("age", 25i32);
44-
44+
4545
{
4646
let mut address = obj.new_object("address");
4747
address.insert("city", "San Francisco");
4848
address.insert("zip", "94102");
4949
let _ = address.finish();
5050
}
51-
51+
5252
{
5353
let mut hobbies = obj.new_list("hobbies");
5454
hobbies.append_value("swimming");
5555
hobbies.append_value("gaming");
5656
hobbies.finish();
5757
}
58-
58+
5959
obj.finish().unwrap();
6060
}
6161
let (metadata, value) = variant_builder.finish();
6262
builder.append_variant_buffers(&metadata, &value);
6363
}
64-
64+
6565
let variant_array = builder.finish();
66-
66+
6767
// Demonstrate path access functionality
6868
println!("=== Path Access Examples ===");
69-
69+
7070
// 1. Single field access
7171
let name_path = VariantPath::field("name");
7272
let alice_name = variant_array.get_path(0, &name_path).unwrap();
7373
println!("Alice's name: {}", alice_name.as_string().unwrap());
74-
74+
7575
// 2. Nested field access
7676
let city_path = VariantPath::field("address").push_field("city");
7777
let alice_city = variant_array.get_path(0, &city_path).unwrap();
7878
let bob_city = variant_array.get_path(1, &city_path).unwrap();
7979
println!("Alice's city: {}", alice_city.as_string().unwrap());
8080
println!("Bob's city: {}", bob_city.as_string().unwrap());
81-
81+
8282
// 3. Array index access
8383
let hobby_path = VariantPath::field("hobbies").push_index(0);
8484
let alice_first_hobby = variant_array.get_path(0, &hobby_path).unwrap();
8585
let bob_first_hobby = variant_array.get_path(1, &hobby_path).unwrap();
86-
println!("Alice's first hobby: {}", alice_first_hobby.as_string().unwrap());
87-
println!("Bob's first hobby: {}", bob_first_hobby.as_string().unwrap());
88-
86+
println!(
87+
"Alice's first hobby: {}",
88+
alice_first_hobby.as_string().unwrap()
89+
);
90+
println!(
91+
"Bob's first hobby: {}",
92+
bob_first_hobby.as_string().unwrap()
93+
);
94+
8995
// 4. Multiple field extraction
9096
let paths = vec![
9197
VariantPath::field("name"),
@@ -106,11 +112,12 @@ fn main() {
106112
}
107113
}
108114
println!();
109-
115+
110116
// 5. Batch field extraction
111117
let all_names = variant_array.extract_field_by_path(&VariantPath::field("name"));
112-
let name_strings: Vec<String> = all_names.iter()
118+
let name_strings: Vec<String> = all_names
119+
.iter()
113120
.filter_map(|opt| opt.as_ref().map(|v| v.as_string().unwrap().to_string()))
114121
.collect();
115122
println!("All names: {:?}", name_strings);
116-
}
123+
}

0 commit comments

Comments
 (0)