Skip to content

Commit c2ff663

Browse files
committed
Add impl Display for Record (refactor Record::unparse)
Signed-off-by: Andrew Lamb <[email protected]>
1 parent d753e4c commit c2ff663

File tree

1 file changed

+33
-27
lines changed

1 file changed

+33
-27
lines changed

sqllogictest/src/parser.rs

+33-27
Original file line numberDiff line numberDiff line change
@@ -142,9 +142,15 @@ impl Record {
142142
/// # Panics
143143
/// If the record is an internally injected record which should not occur in the test file.
144144
pub fn unparse(&self, w: &mut impl std::io::Write) -> std::io::Result<()> {
145+
write!(w, "{}", self)
146+
}
147+
}
148+
149+
impl std::fmt::Display for Record {
150+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
145151
match self {
146152
Record::Include { loc: _, filename } => {
147-
write!(w, "include {}", filename)
153+
write!(f, "include {}", filename)
148154
}
149155
Record::Statement {
150156
loc: _,
@@ -153,21 +159,21 @@ impl Record {
153159
sql,
154160
expected_count,
155161
} => {
156-
write!(w, "statement ")?;
162+
write!(f, "statement ")?;
157163
match (expected_count, expected_error) {
158-
(None, None) => write!(w, "ok")?,
164+
(None, None) => write!(f, "ok")?,
159165
(None, Some(err)) => {
160166
if err.as_str().is_empty() {
161-
write!(w, "error")?;
167+
write!(f, "error")?;
162168
} else {
163-
write!(w, "error {}", err)?;
169+
write!(f, "error {}", err)?;
164170
}
165171
}
166-
(Some(cnt), None) => write!(w, "count {}", cnt)?,
172+
(Some(cnt), None) => write!(f, "count {}", cnt)?,
167173
(Some(_), Some(_)) => unreachable!(),
168174
}
169-
writeln!(w)?;
170-
write!(w, "{}", sql)
175+
writeln!(f)?;
176+
write!(f, "{}", sql)
171177
}
172178
Record::Query {
173179
loc: _,
@@ -179,60 +185,60 @@ impl Record {
179185
sql,
180186
expected_results,
181187
} => {
182-
write!(w, "query")?;
188+
write!(f, "query")?;
183189
if let Some(err) = expected_error {
184-
writeln!(w, " error {}", err)?;
185-
return write!(w, "{}", sql);
190+
writeln!(f, " error {}", err)?;
191+
return write!(f, "{}", sql);
186192
}
187193

188194
write!(
189-
w,
195+
f,
190196
" {}",
191197
type_string.iter().map(|c| format!("{c}")).join("")
192198
)?;
193199
if let Some(sort_mode) = sort_mode {
194-
write!(w, " {}", sort_mode.as_str())?;
200+
write!(f, " {}", sort_mode.as_str())?;
195201
}
196202
if let Some(label) = label {
197-
write!(w, " {}", label)?;
203+
write!(f, " {}", label)?;
198204
}
199-
writeln!(w)?;
200-
writeln!(w, "{}", sql)?;
205+
writeln!(f)?;
206+
writeln!(f, "{}", sql)?;
201207

202-
write!(w, "----")?;
208+
write!(f, "----")?;
203209
for result in expected_results {
204-
write!(w, "\n{}", result)?;
210+
write!(f, "\n{}", result)?;
205211
}
206212
Ok(())
207213
}
208214
Record::Sleep { loc: _, duration } => {
209-
write!(w, "sleep {}", humantime::format_duration(*duration))
215+
write!(f, "sleep {}", humantime::format_duration(*duration))
210216
}
211217
Record::Subtest { loc: _, name } => {
212-
write!(w, "subtest {}", name)
218+
write!(f, "subtest {}", name)
213219
}
214220
Record::Halt { loc: _ } => {
215-
write!(w, "halt")
221+
write!(f, "halt")
216222
}
217223
Record::Control(c) => match c {
218-
Control::SortMode(m) => write!(w, "control sortmode {}", m.as_str()),
224+
Control::SortMode(m) => write!(f, "control sortmode {}", m.as_str()),
219225
},
220226
Record::Condition(cond) => match cond {
221227
Condition::OnlyIf { engine_name } => {
222-
write!(w, "onlyif {}", engine_name)
228+
write!(f, "onlyif {}", engine_name)
223229
}
224230
Condition::SkipIf { engine_name } => {
225-
write!(w, "skipif {}", engine_name)
231+
write!(f, "skipif {}", engine_name)
226232
}
227233
},
228234
Record::HashThreshold { loc: _, threshold } => {
229-
write!(w, "hash-threshold {}", threshold)
235+
write!(f, "hash-threshold {}", threshold)
230236
}
231237
Record::Comment(comment) => {
232238
let mut iter = comment.iter();
233-
write!(w, "#{}", iter.next().unwrap().trim_end())?;
239+
write!(f, "#{}", iter.next().unwrap().trim_end())?;
234240
for line in iter {
235-
write!(w, "\n#{}", line.trim_end())?;
241+
write!(f, "\n#{}", line.trim_end())?;
236242
}
237243
Ok(())
238244
}

0 commit comments

Comments
 (0)