@@ -330,21 +330,33 @@ fn setup_datetime_for_bp() -> ArrayRef {
330330}
331331
332332// Complex encoding tree benchmarks
333+ fn setup_fn ( name : & str ) -> fn ( ) -> ArrayRef {
334+ match name {
335+ "for_bp_u64" => setup_for_bp_u64,
336+ "alp_for_bp_f64" => setup_alp_for_bp_f64,
337+ "dict_varbinview_string" => setup_dict_varbinview_string,
338+ "runend_for_bp_u32" => setup_runend_for_bp_u32,
339+ "dict_fsst_varbin_string" => setup_dict_fsst_varbin_string,
340+ "dict_fsst_varbin_bp_string" => setup_dict_fsst_varbin_bp_string,
341+ "datetime_for_bp" => setup_datetime_for_bp,
342+ _ => unreachable ! ( "Unknown setup function: {}" , name) ,
343+ }
344+ }
333345
334346/// Benchmark decompression of various encoding trees
335347#[ divan:: bench(
336348 args = [
337- ( "for_bp_u64" , setup_for_bp_u64 as fn ( ) -> ArrayRef ) ,
338- ( "alp_for_bp_f64" , setup_alp_for_bp_f64 as fn ( ) -> ArrayRef ) ,
339- ( "dict_varbinview_string" , setup_dict_varbinview_string as fn ( ) -> ArrayRef ) ,
340- ( "runend_for_bp_u32" , setup_runend_for_bp_u32 as fn ( ) -> ArrayRef ) ,
341- ( "dict_fsst_varbin_string" , setup_dict_fsst_varbin_string as fn ( ) -> ArrayRef ) ,
342- ( "dict_fsst_varbin_bp_string" , setup_dict_fsst_varbin_bp_string as fn ( ) -> ArrayRef ) ,
343- ( "datetime_for_bp" , setup_datetime_for_bp as fn ( ) -> ArrayRef ) ,
349+ "for_bp_u64" ,
350+ "alp_for_bp_f64" ,
351+ "dict_varbinview_string" ,
352+ "runend_for_bp_u32" ,
353+ "dict_fsst_varbin_string" ,
354+ "dict_fsst_varbin_bp_string" ,
355+ "datetime_for_bp" ,
344356 ]
345357) ]
346- fn decompress ( bencher : Bencher , ( name, setup_fn ) : ( & str , fn ( ) -> ArrayRef ) ) {
347- let _ = name; // Used by divan for display
358+ fn decompress ( bencher : Bencher , name : & str ) {
359+ let setup_fn = setup_fn ( name) ;
348360 let compressed = setup_fn ( ) ;
349361 let nbytes = compressed. nbytes ( ) ;
350362
0 commit comments