diff --git a/src/sql/mod.rs b/src/sql/mod.rs index 6d2ea5e..f6dc724 100644 --- a/src/sql/mod.rs +++ b/src/sql/mod.rs @@ -21,6 +21,7 @@ pub(crate) enum SqlBuilder { pub(crate) enum Part { Arg, Fields, + Str(&'static str), Text(String), } @@ -85,16 +86,12 @@ impl SqlBuilder { } } - pub(crate) fn append(&mut self, suffix: &str) { + pub(crate) fn append(&mut self, suffix: &'static str) { let Self::InProgress(parts) = self else { return; }; - if let Some(Part::Text(text)) = parts.last_mut() { - text.push_str(suffix); - } else { - parts.push(Part::Text(suffix.to_string())); - } + parts.push(Part::Str(suffix)); } pub(crate) fn finish(mut self) -> Result { @@ -103,6 +100,7 @@ impl SqlBuilder { if let Self::InProgress(parts) = &self { for part in parts { match part { + Part::Str(text) => sql.push_str(text), Part::Text(text) => sql.push_str(text), Part::Arg => { self.error("unbound query argument");