Misc 2 @WaffleLapkin @BoxyUwU
Warning: this quiz is still "work-in-progress", some questions might not have good explanations (or any at all), formatting/structure/titles/etc are not final, and so on. You might want to return here on a later date.
struct Data {
name: String,
bones: Vec<String>,
}
impl std::fmt::Debug for Data {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", &self.name)?;
for bone in &self.bones {
write!(f, " {}", bone)?;
}
writeln!(f, "")
}
}
fn main() {
let data = Data {
name: "Boxy".into(),
bones: vec!["fakebone1".into(), "fakebone2".into()],
};
dbg!(data)
}
Solution
error[E0308]: mismatched types
--> examples/misc_2.rs:21:5
|
16 | fn main() {
| - expected `()` because of default return type
...
21 | dbg!(data)
| ^^^^^^^^^^ expected `()`, found `Data`
|
= note: this error originates in the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info)
For more information about this error, try `rustc --explain E0308`.
error: could not compile `code` (example "misc_2") due to 1 previous error
There is a lot of fluff, the mistake is on the second to last line.
dbg!
returns its argument after printing to the stderr
, which means that you need to use ;
after it in cases like this.