use std::fmt;
struct InnerStruct {
value: String,
}
struct NestedStruct {
vec: Vec<i32>,
inner: InnerStruct,
}
impl fmt::Debug for InnerStruct {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "InnerStruct {{ value: \"{}\" }}", self.value)
}
}
impl fmt::Debug for NestedStruct {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let vec_str = self.vec.iter()
.map(|x| x.to_string())
.collect::<Vec<String>>()
.join(" -> ");
write!(f, "NestedStruct {{ vec: [{}], inner: {:?} }}", vec_str, self.inner)
}
}