Skip to content

Commit

Permalink
Fix rational numbers serialization
Browse files Browse the repository at this point in the history
  • Loading branch information
bakaq committed Aug 20, 2024
1 parent 7f63587 commit 01cdd76
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 9 deletions.
2 changes: 1 addition & 1 deletion src/machine/lib_machine.rs
Original file line number Diff line number Diff line change
Expand Up @@ -647,7 +647,7 @@ mod tests {
let result = machine.run_query(query);

let expected = Value::Structure(
// Composite term
// Compound term
"a".into(),
vec![
Value::String("asdf".into()), // String
Expand Down
22 changes: 14 additions & 8 deletions src/machine/parsed_results.rs
Original file line number Diff line number Diff line change
Expand Up @@ -166,8 +166,8 @@ impl From<&QueryResolution> for Value {
}

struct ValueRationalInner {
up: IBig,
down: UBig,
numerator: IBig,
denominator: UBig,
}

impl Serialize for ValueRationalInner {
Expand All @@ -176,13 +176,13 @@ impl Serialize for ValueRationalInner {
S: Serializer,
{
let mut seq = serializer.serialize_seq(Some(2))?;
match self.up.to_i64() {
match self.numerator.to_i64() {
Some(small) => seq.serialize_element(&small)?,
None => seq.serialize_element(&self.up.to_string())?,
None => seq.serialize_element(&self.numerator.to_string())?,
}
match self.down.to_i64() {
match self.denominator.to_u64() {
Some(small) => seq.serialize_element(&small)?,
None => seq.serialize_element(&self.down.to_string())?,
None => seq.serialize_element(&self.denominator.to_string())?,
}
seq.end()
}
Expand All @@ -203,9 +203,15 @@ impl Serialize for Value {
}
},
Value::Rational(r) => {
let (up, down) = r.clone().into_parts();
let (numerator, denominator) = r.clone().into_parts();
let mut map = serializer.serialize_map(Some(1))?;
map.serialize_entry("rational", &ValueRationalInner { up, down })?;
map.serialize_entry(
"rational",
&ValueRationalInner {
numerator,
denominator,
},
)?;
map.end()
}
Value::Float(f) => serializer.serialize_f64(f.into_inner()),
Expand Down

0 comments on commit 01cdd76

Please sign in to comment.