Skip to content

Commit c6c570c

Browse files
committed
fix format
1 parent 13f4c10 commit c6c570c

File tree

4 files changed

+556
-410
lines changed

4 files changed

+556
-410
lines changed

arrow-schema/src/extension/canonical/variant.rs

+77-49
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use crate::{extension::ExtensionType, ArrowError, DataType};
2828
/// The storage type of this extension is **Struct containing two binary fields**:
2929
/// - metadata: Binary field containing the variant metadata
3030
/// - value: Binary field containing the serialized variant data
31-
///
31+
///
3232
/// A Variant is a flexible structure that can store **Primitives, Arrays, or Objects**.
3333
///
3434
/// Both metadata and value fields are required.
@@ -101,22 +101,26 @@ impl ExtensionType for Variant {
101101
"Variant struct must have exactly two fields".to_owned(),
102102
));
103103
}
104-
105-
let metadata_field = fields.iter()
106-
.find(|f| f.name() == "metadata")
107-
.ok_or_else(|| ArrowError::InvalidArgumentError(
108-
"Variant struct must have a field named 'metadata'".to_owned(),
109-
))?;
110-
111-
let value_field = fields.iter()
112-
.find(|f| f.name() == "value")
113-
.ok_or_else(|| ArrowError::InvalidArgumentError(
104+
105+
let metadata_field =
106+
fields
107+
.iter()
108+
.find(|f| f.name() == "metadata")
109+
.ok_or_else(|| {
110+
ArrowError::InvalidArgumentError(
111+
"Variant struct must have a field named 'metadata'".to_owned(),
112+
)
113+
})?;
114+
115+
let value_field = fields.iter().find(|f| f.name() == "value").ok_or_else(|| {
116+
ArrowError::InvalidArgumentError(
114117
"Variant struct must have a field named 'value'".to_owned(),
115-
))?;
118+
)
119+
})?;
116120

117121
match (metadata_field.data_type(), value_field.data_type()) {
118-
(DataType::Binary, DataType::Binary) |
119-
(DataType::LargeBinary, DataType::LargeBinary) => {
122+
(DataType::Binary, DataType::Binary)
123+
| (DataType::LargeBinary, DataType::LargeBinary) => {
120124
if metadata_field.is_nullable() || value_field.is_nullable() {
121125
return Err(ArrowError::InvalidArgumentError(
122126
"Variant struct fields must not be nullable".to_owned(),
@@ -149,24 +153,27 @@ mod tests {
149153
use crate::extension::CanonicalExtensionType;
150154
use crate::{
151155
extension::{EXTENSION_TYPE_METADATA_KEY, EXTENSION_TYPE_NAME_KEY},
152-
Field, DataType,
156+
DataType, Field,
153157
};
154158

155159
use super::*;
156160

157161
#[test]
158162
fn valid() -> Result<(), ArrowError> {
159-
let struct_type = DataType::Struct(vec![
160-
Field::new("metadata", DataType::Binary, false),
161-
Field::new("value", DataType::Binary, false)
162-
].into());
163-
163+
let struct_type = DataType::Struct(
164+
vec![
165+
Field::new("metadata", DataType::Binary, false),
166+
Field::new("value", DataType::Binary, false),
167+
]
168+
.into(),
169+
);
170+
164171
let mut field = Field::new("", struct_type, false);
165172
let variant = Variant::new(Vec::new(), Vec::new());
166-
173+
167174
field.try_with_extension_type(variant.clone())?;
168175
field.try_extension_type::<Variant>()?;
169-
176+
170177
#[cfg(feature = "canonical_extension_types")]
171178
assert_eq!(
172179
field.try_canonical_extension_type()?,
@@ -179,11 +186,14 @@ mod tests {
179186
#[test]
180187
#[should_panic(expected = "Field extension type name missing")]
181188
fn missing_name() {
182-
let struct_type = DataType::Struct(vec![
183-
Field::new("metadata", DataType::Binary, false),
184-
Field::new("value", DataType::Binary, false)
185-
].into());
186-
189+
let struct_type = DataType::Struct(
190+
vec![
191+
Field::new("metadata", DataType::Binary, false),
192+
Field::new("value", DataType::Binary, false),
193+
]
194+
.into(),
195+
);
196+
187197
let field = Field::new("", struct_type, false).with_metadata(
188198
[(EXTENSION_TYPE_METADATA_KEY.to_owned(), "".to_owned())]
189199
.into_iter()
@@ -201,15 +211,21 @@ mod tests {
201211
#[test]
202212
#[should_panic(expected = "Variant extension type expects an empty string as metadata")]
203213
fn invalid_metadata() {
204-
let struct_type = DataType::Struct(vec![
205-
Field::new("metadata", DataType::Binary, false),
206-
Field::new("value", DataType::Binary, false)
207-
].into());
208-
214+
let struct_type = DataType::Struct(
215+
vec![
216+
Field::new("metadata", DataType::Binary, false),
217+
Field::new("value", DataType::Binary, false),
218+
]
219+
.into(),
220+
);
221+
209222
let field = Field::new("", struct_type, false).with_metadata(
210223
[
211224
(EXTENSION_TYPE_NAME_KEY.to_owned(), Variant::NAME.to_owned()),
212-
(EXTENSION_TYPE_METADATA_KEY.to_owned(), "non-empty".to_owned()),
225+
(
226+
EXTENSION_TYPE_METADATA_KEY.to_owned(),
227+
"non-empty".to_owned(),
228+
),
213229
]
214230
.into_iter()
215231
.collect(),
@@ -221,14 +237,20 @@ mod tests {
221237
fn variant_supports_valid_data_types() {
222238
// Test valid struct types
223239
let valid_types = [
224-
DataType::Struct(vec![
225-
Field::new("metadata", DataType::Binary, false),
226-
Field::new("value", DataType::Binary, false)
227-
].into()),
228-
DataType::Struct(vec![
229-
Field::new("metadata", DataType::LargeBinary, false),
230-
Field::new("value", DataType::LargeBinary, false)
231-
].into())
240+
DataType::Struct(
241+
vec![
242+
Field::new("metadata", DataType::Binary, false),
243+
Field::new("value", DataType::Binary, false),
244+
]
245+
.into(),
246+
),
247+
DataType::Struct(
248+
vec![
249+
Field::new("metadata", DataType::LargeBinary, false),
250+
Field::new("value", DataType::LargeBinary, false),
251+
]
252+
.into(),
253+
),
232254
];
233255

234256
for data_type in valid_types {
@@ -240,14 +262,20 @@ mod tests {
240262
let invalid_types = [
241263
DataType::Utf8,
242264
DataType::Struct(vec![Field::new("single", DataType::Binary, false)].into()),
243-
DataType::Struct(vec![
244-
Field::new("wrong1", DataType::Binary, false),
245-
Field::new("wrong2", DataType::Binary, false)
246-
].into()),
247-
DataType::Struct(vec![
248-
Field::new("metadata", DataType::Binary, true), // nullable
249-
Field::new("value", DataType::Binary, false)
250-
].into())
265+
DataType::Struct(
266+
vec![
267+
Field::new("wrong1", DataType::Binary, false),
268+
Field::new("wrong2", DataType::Binary, false),
269+
]
270+
.into(),
271+
),
272+
DataType::Struct(
273+
vec![
274+
Field::new("metadata", DataType::Binary, true), // nullable
275+
Field::new("value", DataType::Binary, false),
276+
]
277+
.into(),
278+
),
251279
];
252280

253281
for data_type in invalid_types {

0 commit comments

Comments
 (0)