]> Repositorios git - scryer-prolog.git/commitdiff
Dedupe machine results
authorNicolas Luck <[email protected]>
Fri, 21 Jul 2023 22:32:24 +0000 (00:32 +0200)
committerNicolas Luck <[email protected]>
Fri, 21 Jul 2023 22:32:24 +0000 (00:32 +0200)
src/machine/lib_machine.rs

index 1dfdd2b28b875830c49e2f1d9d29bd8870c906d3..050c883b182d6666b6d4486a79a60b4b28e132a3 100644 (file)
@@ -1,3 +1,5 @@
+use std::collections::HashSet;
+
 use super::{Machine, MachineConfig, QueryResult, QueryResolution, QueryResolutionLine, Atom};
 
 impl Machine {
@@ -16,6 +18,14 @@ impl Machine {
         if output.starts_with("error(") {
             Err(output)
         } else {
+            // Remove duplicate lines
+            let output = output
+                .lines()
+                .collect::<HashSet<&str>>()
+                .iter()
+                .cloned()
+                .collect::<Vec<&str>>()
+                .join("\n");
             Ok(output
                 .split(";")
                 .map(|s| s.trim())