File tree Expand file tree Collapse file tree 1 file changed +14
-21
lines changed Expand file tree Collapse file tree 1 file changed +14
-21
lines changed Original file line number Diff line number Diff line change @@ -937,31 +937,24 @@ impl Grid {
937
937
bins : & BinLimits ,
938
938
entries : & [ LumiEntry ] ,
939
939
) -> ( Vec < Order > , Vec < LumiEntry > ) {
940
- let mut new_orders: Vec < Order > = Vec :: new ( ) ;
941
- let new_bins = bins. bins ( ) - self . bin_limits . bins ( ) ;
942
- let mut new_entries: Vec < LumiEntry > = Vec :: new ( ) ;
940
+ fn unique < T : Clone + PartialEq > ( current : & [ T ] , update : & [ T ] ) -> Vec < T > {
941
+ let mut new = Vec :: new ( ) ;
943
942
944
- for order in orders . iter ( ) {
945
- if !self
946
- . orders
947
- . iter ( )
948
- . chain ( new_orders . iter ( ) )
949
- . any ( |x| x == order )
950
- {
951
- new_orders . push ( order . clone ( ) ) ;
943
+ for el in update . iter ( ) {
944
+ if !current
945
+ . iter ( )
946
+ . chain ( new . iter ( ) )
947
+ . any ( |x| x == el )
948
+ {
949
+ new . push ( ( * el ) . clone ( ) ) ;
950
+ }
952
951
}
952
+ new
953
953
}
954
954
955
- for entry in entries. iter ( ) {
956
- if !self
957
- . lumi
958
- . iter ( )
959
- . chain ( new_entries. iter ( ) )
960
- . any ( |y| y == entry)
961
- {
962
- new_entries. push ( entry. clone ( ) ) ;
963
- }
964
- }
955
+ let mut new_orders = unique ( & self . orders , & orders) ;
956
+ let new_bins = bins. bins ( ) - self . bin_limits . bins ( ) ;
957
+ let mut new_entries = unique ( & self . lumi , & entries) ;
965
958
966
959
if !new_orders. is_empty ( ) || !new_entries. is_empty ( ) || ( new_bins != 0 ) {
967
960
self . increase_shape ( & ( new_orders. len ( ) , new_bins, new_entries. len ( ) ) ) ;
You can’t perform that action at this time.
0 commit comments