derive_more icon indicating copy to clipboard operation
derive_more copied to clipboard

Change display on enum without `_variant` to "use as default" behaviour

Open JelteF opened this issue 1 year ago • 0 comments
trafficstars

This should work:

#[derive(Display)]
#[display("{_0}")]
enum Enum<T> {
    #[display("A")]
    A(i32),
    #[display("B")]
    B(&'static str),
    #[display("C")]
    C(T),
}

fn main() {
    assert_eq!(Enum::<u8>::A(1).to_string(), "A");
    assert_eq!(Enum::<u8>::B("abc").to_string(), "B");
    assert_eq!(Enum::<u8>::C(9).to_string(), "C");
}

As well as:

#[derive(Display)]
#[display("some content: {_0}")]
enum Enum<T> {
    #[display("A")]
    A(i32),
    B(&'static str),
    C(T),
}

fn main() {
    assert_eq!(Enum::<u8>::A(1).to_string(), "A");
    assert_eq!(Enum::<u8>::B("abc").to_string(), "some content: abc");
    assert_eq!(Enum::<u8>::C(9).to_string(), "some content: 9");
}

Related to #395. Note that transparence checks should also work as expected.

JelteF avatar Sep 08 '24 10:09 JelteF