Skip to content
Snippets Groups Projects
Commit 7c01e1e4 authored by Sebastian Dröge's avatar Sebastian Dröge :tea:
Browse files

Fix infinite recursion in Structure::to_string()

Instead of StructureRef's to_string(), we were calling
ToString::to_string() in the Display impl. Which then called into itself
again.

Fixes https://github.com/sdroege/gstreamer-rs/issues/101
parent 92341e92
No related branches found
No related tags found
No related merge requests found
......@@ -116,13 +116,15 @@ impl Drop for Structure {
impl fmt::Debug for Structure {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_tuple("Structure").field(&self.to_string()).finish()
f.debug_tuple("Structure")
.field(&self.as_ref().to_string())
.finish()
}
}
impl fmt::Display for Structure {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str(&self.to_string())
f.write_str(&self.as_ref().to_string())
}
}
......@@ -485,7 +487,7 @@ impl StructureRef {
impl fmt::Debug for StructureRef {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str(&self.to_string())
f.write_str(&StructureRef::to_string(self))
}
}
......@@ -676,7 +678,7 @@ mod tests {
#[test]
fn test_string_conversion() {
let a = "Test, f1=(string)abc, f2=(uint)123";
let a = "Test, f1=(string)abc, f2=(uint)123;";
let s = Structure::from_string(&a).unwrap();
assert_eq!(s.get::<&str>("f1").unwrap(), "abc");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment