use std::fmt::{self, Display};

fn main() {
    let a = Foo;

    if a.to_string() != "bar" {
        println!("foo");
    }

    if "bar" != a.to_string() {
        println!("foo");
    }
}

struct Foo;

impl Display for Foo {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "foo")
    }
}

impl PartialEq<&str> for Foo {
    fn eq(&self, other: &&str) -> bool {
        "foo" == *other
    }
}