Add comparisons for json floats but not yet between OwnedLiterals and json.
This commit is contained in:
		
							parent
							
								
									978bbe6eb3
								
							
						
					
					
						commit
						a378d6e6f3
					
				
							
								
								
									
										33
									
								
								src/bin.rs
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								src/bin.rs
									
									
									
									
									
								
							| @ -503,28 +503,43 @@ where | ||||
| { | ||||
|     let self_number: JsonNumber = self_input.into(); | ||||
|     let other_number: JsonNumber = other_input.into(); | ||||
|     // TODO: Figure out how javascript compares floats and ints
 | ||||
|     match (self_number, other_number) { | ||||
|         (JsonNumber::Failure, _) => return None, | ||||
|         (_, JsonNumber::Failure) => return None, | ||||
|         (JsonNumber::UnsignedInteger(self_num), JsonNumber::UnsignedInteger(other_num)) => { | ||||
|             return self_num.partial_cmp(&other_num) | ||||
|         } | ||||
|         (JsonNumber::UnsignedInteger(_self_num), JsonNumber::SignedInteger(_other_num)) => { | ||||
|             return Some(Ordering::Greater) | ||||
|         (JsonNumber::UnsignedInteger(self_num), JsonNumber::SignedInteger(other_num)) => { | ||||
|             if self_num < std::i64::MAX as u64 { | ||||
|                 return (self_num as i64).partial_cmp(&other_num); | ||||
|             } else { | ||||
|                 return Some(Ordering::Greater); | ||||
|             } | ||||
|         } | ||||
|         (JsonNumber::UnsignedInteger(self_num), JsonNumber::Decimal(other_num)) => { | ||||
|             return (self_num as f64).partial_cmp(&other_num) | ||||
|         } | ||||
|         (JsonNumber::UnsignedInteger(_self_num), JsonNumber::Decimal(_other_num)) => return None, | ||||
| 
 | ||||
|         (JsonNumber::SignedInteger(_self_num), JsonNumber::UnsignedInteger(_other_num)) => { | ||||
|             return Some(Ordering::Less) | ||||
|         (JsonNumber::SignedInteger(self_num), JsonNumber::UnsignedInteger(other_num)) => { | ||||
|             if other_num < std::i64::MAX as u64 { | ||||
|                 return self_num.partial_cmp(&(other_num as i64)); | ||||
|             } else { | ||||
|                 return Some(Ordering::Less); | ||||
|             } | ||||
|         } | ||||
|         (JsonNumber::SignedInteger(self_num), JsonNumber::SignedInteger(other_num)) => { | ||||
|             return self_num.partial_cmp(&other_num) | ||||
|         } | ||||
|         (JsonNumber::SignedInteger(_self_num), JsonNumber::Decimal(_other_num)) => return None, | ||||
|         (JsonNumber::SignedInteger(self_num), JsonNumber::Decimal(other_num)) => { | ||||
|             return (self_num as f64).partial_cmp(&other_num) | ||||
|         } | ||||
| 
 | ||||
|         (JsonNumber::Decimal(_self_num), JsonNumber::UnsignedInteger(_other_num)) => return None, | ||||
|         (JsonNumber::Decimal(_self_num), JsonNumber::SignedInteger(_other_num)) => return None, | ||||
|         (JsonNumber::Decimal(self_num), JsonNumber::UnsignedInteger(other_num)) => { | ||||
|             return self_num.partial_cmp(&(other_num as f64)) | ||||
|         } | ||||
|         (JsonNumber::Decimal(self_num), JsonNumber::SignedInteger(other_num)) => { | ||||
|             return self_num.partial_cmp(&(other_num as f64)) | ||||
|         } | ||||
|         (JsonNumber::Decimal(self_num), JsonNumber::Decimal(other_num)) => { | ||||
|             return self_num.partial_cmp(&other_num) | ||||
|         } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Tom Alexander
						Tom Alexander