MCPcopy Create free account
hub / github.com/GothenburgBitFactory/taskwarrior / operator<

Method operator<

src/Variant.cpp:193–338  ·  view source on GitHub ↗

///////////////////////////////////////////////////////////////////////////

Source from the content-addressed store, hash-verified

191
192////////////////////////////////////////////////////////////////////////////////
193bool Variant::operator<(const Variant& other) const {
194 Variant left(*this);
195 Variant right(other);
196
197 if (left._type == type_string) Lexer::dequote(left._string);
198
199 if (right._type == type_string) Lexer::dequote(right._string);
200
201 switch (left._type) {
202 case type_boolean:
203 switch (right._type) {
204 case type_boolean:
205 return !left._bool && right._bool;
206 case type_integer:
207 left.cast(type_integer);
208 return left._integer < right._integer;
209 case type_real:
210 left.cast(type_real);
211 return left._real < right._real;
212 case type_string:
213 left.cast(type_string);
214 return left._string < right._string;
215 case type_date:
216 left.cast(type_date);
217 return left._date < right._date;
218 case type_duration:
219 left.cast(type_duration);
220 return left._duration < right._duration;
221 }
222 break;
223
224 case type_integer:
225 switch (right._type) {
226 case type_boolean:
227 right.cast(type_integer);
228 return left._integer < right._integer;
229 case type_integer:
230 return left._integer < right._integer;
231 case type_real:
232 left.cast(type_real);
233 return left._real < right._real;
234 case type_string:
235 left.cast(type_string);
236 return left._string < right._string;
237 case type_date:
238 left.cast(type_date);
239 return left._date < right._date;
240 case type_duration:
241 left.cast(type_duration);
242 return left._duration < right._duration;
243 }
244 break;
245
246 case type_real:
247 switch (right._type) {
248 case type_boolean:
249 right.cast(type_real);
250 return left._real < right._real;

Callers

nothing calls this directly

Calls 4

castMethod · 0.80
findMethod · 0.80
sourceMethod · 0.80
trivialMethod · 0.80

Tested by

no test coverage detected