Browse Source

Fixup itertools removal.

Kestrel 6 days ago
parent
commit
9715002e2e
1 changed files with 22 additions and 0 deletions
  1. 22 0
      microrm/src/query.rs

+ 22 - 0
microrm/src/query.rs

@@ -60,6 +60,28 @@ pub(crate) enum QueryPart {
     Trailing,
 }
 
+// helper trait to replace itertools dependency
+trait Joinable {
+    fn join(self, sep: &str) -> String;
+}
+
+impl<T: std::fmt::Display, I: Iterator<Item = T>> Joinable for I {
+    fn join(self, sep: &str) -> String {
+        use std::fmt::Write;
+        let mut out = String::new();
+        let mut first = true;
+        for item in self {
+            if first {
+                first = false
+            } else {
+                out.push_str(sep);
+            }
+            write!(&mut out, "{}", item).unwrap();
+        }
+        out
+    }
+}
+
 /// Represents a SQL query built during runtime.
 #[derive(Debug)]
 pub struct Query<'l> {