@@ -254,28 +254,49 @@ pub enum Mode {
254
254
}
255
255
256
256
#[ derive( Debug , Clone , Copy , PartialEq , Eq , Default ) ]
257
- #[ allow( non_camel_case_types, clippy:: upper_case_acronyms) ]
258
257
pub enum Compression {
259
- UNCOMPRESSED ,
260
- SNAPPY ,
261
- GZIP ,
262
- LZO ,
263
- BROTLI ,
258
+ Uncompressed ,
259
+ Snappy ,
260
+ Gzip ,
261
+ Lzo ,
262
+ Brotli ,
264
263
#[ default]
265
- LZ4 ,
266
- ZSTD ,
264
+ Lz4 ,
265
+ Zstd ,
266
+ }
267
+
268
+ #[ derive( Debug , thiserror:: Error ) ]
269
+ #[ error( "Unexpected compression algorithm: {0:?}" ) ]
270
+ pub struct UnexpectedAlgo < ' a > ( & ' a str ) ;
271
+
272
+ impl < ' a > TryFrom < & ' a str > for Compression {
273
+ type Error = UnexpectedAlgo < ' a > ;
274
+ fn try_from ( value : & ' a str ) -> Result < Self , Self :: Error > {
275
+ let algo = match value {
276
+ "uncompressed" => Self :: Uncompressed ,
277
+ "snappy" => Self :: Snappy ,
278
+ "gzip" => Self :: Gzip ,
279
+ "lzo" => Self :: Lzo ,
280
+ "brotli" => Self :: Brotli ,
281
+ "lz4" => Self :: Lz4 ,
282
+ "zstd" => Self :: Zstd ,
283
+ s => return Err ( UnexpectedAlgo ( s) ) ,
284
+ } ;
285
+
286
+ Ok ( algo)
287
+ }
267
288
}
268
289
269
290
impl From < Compression > for parquet:: basic:: Compression {
270
291
fn from ( value : Compression ) -> Self {
271
292
match value {
272
- Compression :: UNCOMPRESSED => parquet:: basic:: Compression :: UNCOMPRESSED ,
273
- Compression :: SNAPPY => parquet:: basic:: Compression :: SNAPPY ,
274
- Compression :: GZIP => parquet:: basic:: Compression :: GZIP ( GzipLevel :: default ( ) ) ,
275
- Compression :: LZO => parquet:: basic:: Compression :: LZO ,
276
- Compression :: BROTLI => parquet:: basic:: Compression :: BROTLI ( BrotliLevel :: default ( ) ) ,
277
- Compression :: LZ4 => parquet:: basic:: Compression :: LZ4 ,
278
- Compression :: ZSTD => parquet:: basic:: Compression :: ZSTD ( ZstdLevel :: default ( ) ) ,
293
+ Compression :: Uncompressed => parquet:: basic:: Compression :: UNCOMPRESSED ,
294
+ Compression :: Snappy => parquet:: basic:: Compression :: SNAPPY ,
295
+ Compression :: Gzip => parquet:: basic:: Compression :: GZIP ( GzipLevel :: default ( ) ) ,
296
+ Compression :: Lzo => parquet:: basic:: Compression :: LZO ,
297
+ Compression :: Brotli => parquet:: basic:: Compression :: BROTLI ( BrotliLevel :: default ( ) ) ,
298
+ Compression :: Lz4 => parquet:: basic:: Compression :: LZ4 ,
299
+ Compression :: Zstd => parquet:: basic:: Compression :: ZSTD ( ZstdLevel :: default ( ) ) ,
279
300
}
280
301
}
281
302
}
0 commit comments