visual 0.2.0

Use Display if available, Debug otherwise
Documentation
use visual::{vis, Visual, get_non_displayable_string, set_non_displayable_string};

#[test]
fn it_works() {
    assert_display_eq(vis!(6), "6");
    assert_display_eq(vis!("6"), "6");
    assert_display_eq(vis!("hello"), "hello");
    assert_display_eq(vis!(String::from("hello")), "hello");
    assert_display_eq(vis!(vec![1, 2, 3]), "[1, 2, 3]");

    assert_display_eq(vis!(&6), "6");
    assert_display_eq(vis!(&"6"), "6");
    assert_display_eq(vis!(&"hello"), "hello");

    let st = String::from("hello");
    assert_display_eq(vis!(&st), "hello");

    let vec = vec![1, 2, 3];
    assert_display_eq(vis!(&vec), "[1, 2, 3]");

    struct MyStruct;
    assert_display_eq(vis!(MyStruct), get_non_displayable_string());
}

#[test]
fn custom_default_works() {
    set_non_displayable_string("nothing").expect("Failed to initialize custom default string");
    assert_eq!(get_non_displayable_string(), "nothing");

    struct MyStruct;
    assert_display_eq(vis!(MyStruct), get_non_displayable_string());
}

fn assert_display_eq<T>(t: Visual<T>, other: &str) {
    assert_eq!(t.get_display(), other);
}