Skip to content

Commit 2fba123

Browse files
committed
fixing unit test
1 parent 01bc7f2 commit 2fba123

File tree

4 files changed

+90
-162
lines changed

4 files changed

+90
-162
lines changed

src/collector/sort_key/mod.rs

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ mod sort_key_computer;
33
use columnar::StrColumn;
44
pub use sort_key_computer::{SegmentSortKeyComputer, SortKeyComputer};
55

6+
use crate::fastfield::FastValue;
67
use crate::termdict::TermOrdinal;
78
use crate::{DocId, Order, Score};
89

@@ -36,12 +37,8 @@ impl<TSegmentSortKeyComputer, TSegmentSortKey> SegmentSortKeyComputer
3637
for (TSegmentSortKeyComputer, Order)
3738
where
3839
TSegmentSortKeyComputer: SegmentSortKeyComputer<SegmentSortKey = TSegmentSortKey>,
39-
TSegmentSortKey: ReverseOrder<ReverseOrderType = TSegmentSortKey>
40-
+ PartialOrd
41-
+ Clone
42-
+ 'static
43-
+ Sync
44-
+ Send,
40+
TSegmentSortKey:
41+
ReverseOrder<ReverseType = TSegmentSortKey> + PartialOrd + Clone + 'static + Sync + Send,
4542
{
4643
type SortKey = TSegmentSortKeyComputer::SortKey;
4744
type SegmentSortKey = TSegmentSortKey;
@@ -70,53 +67,55 @@ where
7067
//
7168
// We then rely on an ReverseOrder implementation with a ReverseOrderType that maps to Self.
7269
pub trait ReverseOrder: Clone {
73-
type ReverseOrderType: PartialOrd + Clone;
70+
type ReverseType: PartialOrd + Clone;
7471

75-
fn to_reverse_type(self) -> Self::ReverseOrderType;
72+
fn to_reverse_type(self) -> Self::ReverseType;
7673

77-
fn from_reverse_type(reverse_value: Self::ReverseOrderType) -> Self;
74+
fn from_reverse_type(reverse_value: Self::ReverseType) -> Self;
7875
}
7976

8077
fn reverse_if_asc<T>(value: T, order: Order) -> T
81-
where T: ReverseOrder<ReverseOrderType = T> {
78+
where T: ReverseOrder<ReverseType = T> {
8279
match order {
8380
Order::Asc => value.to_reverse_type(),
8481
Order::Desc => value,
8582
}
8683
}
8784

88-
impl ReverseOrder for u64 {
89-
type ReverseOrderType = u64;
85+
impl<TFastValue: FastValue> ReverseOrder for TFastValue {
86+
type ReverseType = TFastValue;
9087

91-
fn to_reverse_type(self) -> Self::ReverseOrderType {
92-
u64::MAX - self
88+
fn to_reverse_type(self) -> Self::ReverseType {
89+
// TODO check that the compiler is good enough to compile that to i64::MAX - self for i64
90+
// for instance.
91+
TFastValue::from_u64(u64::MAX - self.to_u64())
9392
}
9493

95-
fn from_reverse_type(reverse_value: Self::ReverseOrderType) -> Self {
94+
fn from_reverse_type(reverse_value: Self::ReverseType) -> Self {
9695
reverse_value.to_reverse_type()
9796
}
9897
}
9998

10099
impl ReverseOrder for u32 {
101-
type ReverseOrderType = u32;
100+
type ReverseType = u32;
102101

103-
fn to_reverse_type(self) -> Self::ReverseOrderType {
102+
fn to_reverse_type(self) -> Self::ReverseType {
104103
u32::MAX - self
105104
}
106105

107-
fn from_reverse_type(reverse_value: Self::ReverseOrderType) -> Self {
106+
fn from_reverse_type(reverse_value: Self::ReverseType) -> Self {
108107
reverse_value.to_reverse_type()
109108
}
110109
}
111110

112111
impl ReverseOrder for f32 {
113-
type ReverseOrderType = f32;
112+
type ReverseType = f32;
114113

115-
fn to_reverse_type(self) -> Self::ReverseOrderType {
114+
fn to_reverse_type(self) -> Self::ReverseType {
116115
f32::MAX - self
117116
}
118117

119-
fn from_reverse_type(reverse_value: Self::ReverseOrderType) -> Self {
118+
fn from_reverse_type(reverse_value: Self::ReverseType) -> Self {
120119
// That's an involution
121120
reverse_value.to_reverse_type()
122121
}
@@ -125,13 +124,13 @@ impl ReverseOrder for f32 {
125124
// The point here is that for Option, we do not want None values to come on top
126125
// when running a Asc query.
127126
impl<T: ReverseOrder> ReverseOrder for Option<T> {
128-
type ReverseOrderType = Option<T::ReverseOrderType>;
127+
type ReverseType = Option<T::ReverseType>;
129128

130-
fn to_reverse_type(self) -> Self::ReverseOrderType {
129+
fn to_reverse_type(self) -> Self::ReverseType {
131130
self.map(|val| val.to_reverse_type())
132131
}
133132

134-
fn from_reverse_type(reverse_value: Self::ReverseOrderType) -> Self {
133+
fn from_reverse_type(reverse_value: Self::ReverseType) -> Self {
135134
reverse_value.map(T::from_reverse_type)
136135
}
137136
}

src/collector/sort_key/sort_key_computer.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -107,37 +107,37 @@ where
107107
}
108108

109109
impl<T: PartialOrd + Clone> ReverseOrder for std::cmp::Reverse<T> {
110-
type ReverseOrderType = T;
110+
type ReverseType = T;
111111

112-
fn to_reverse_type(self) -> Self::ReverseOrderType {
112+
fn to_reverse_type(self) -> Self::ReverseType {
113113
self.0
114114
}
115115

116-
fn from_reverse_type(reverse_value: Self::ReverseOrderType) -> Self {
116+
fn from_reverse_type(reverse_value: Self::ReverseType) -> Self {
117117
Self(reverse_value)
118118
}
119119
}
120120

121121
impl ReverseOrder for String {
122-
type ReverseOrderType = std::cmp::Reverse<String>;
122+
type ReverseType = std::cmp::Reverse<String>;
123123

124-
fn to_reverse_type(self) -> Self::ReverseOrderType {
124+
fn to_reverse_type(self) -> Self::ReverseType {
125125
std::cmp::Reverse(self)
126126
}
127127

128-
fn from_reverse_type(reverse_value: Self::ReverseOrderType) -> Self {
128+
fn from_reverse_type(reverse_value: Self::ReverseType) -> Self {
129129
reverse_value.0
130130
}
131131
}
132132

133133
impl<Left: ReverseOrder, Right: ReverseOrder> ReverseOrder for (Left, Right) {
134-
type ReverseOrderType = (Left::ReverseOrderType, Right::ReverseOrderType);
134+
type ReverseType = (Left::ReverseType, Right::ReverseType);
135135

136-
fn to_reverse_type(self) -> Self::ReverseOrderType {
136+
fn to_reverse_type(self) -> Self::ReverseType {
137137
(self.0.to_reverse_type(), self.1.to_reverse_type())
138138
}
139139

140-
fn from_reverse_type(reverse_value: Self::ReverseOrderType) -> Self {
140+
fn from_reverse_type(reverse_value: Self::ReverseType) -> Self {
141141
(
142142
Left::from_reverse_type(reverse_value.0),
143143
Right::from_reverse_type(reverse_value.1),

src/collector/sort_key_top_collector.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ where
5656
Order::Asc => {
5757
let reverse_segment_fruits: Vec<
5858
Vec<(
59-
<TSortKeyComputer::SortKey as ReverseOrder>::ReverseOrderType,
59+
<TSortKeyComputer::SortKey as ReverseOrder>::ReverseType,
6060
DocAddress,
6161
)>,
6262
> = segment_fruits

0 commit comments

Comments
 (0)