From 740e62cda3daa42a01a9e417a7c481fa770865d7 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 23 May 2020 22:33:23 +0000 Subject: [PATCH] Fix Display macro to handle fill/align --- strum_macros/src/macros/strings/display.rs | 2 +- strum_tests/tests/display.rs | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/strum_macros/src/macros/strings/display.rs b/strum_macros/src/macros/strings/display.rs index b2f24d3a..2260b603 100644 --- a/strum_macros/src/macros/strings/display.rs +++ b/strum_macros/src/macros/strings/display.rs @@ -47,7 +47,7 @@ pub fn display_inner(ast: &syn::DeriveInput) -> TokenStream { Named(..) => quote! { {..} }, }; - arms.push(quote! { #name::#ident #params => f.write_str(#output) }); + arms.push(quote! { #name::#ident #params => f.pad(#output) }); } if arms.len() < variants.len() { diff --git a/strum_tests/tests/display.rs b/strum_tests/tests/display.rs index 3642f607..c36d6d2c 100644 --- a/strum_tests/tests/display.rs +++ b/strum_tests/tests/display.rs @@ -19,6 +19,14 @@ fn to_blue_string() { assert_eq!(String::from("blue"), format!("{}", Color::Blue { hue: 0 })); } +#[test] +fn test_formatters() { + assert_eq!(String::from(" blue"), format!("{:>6}", Color::Blue { hue: 0 })); + assert_eq!(String::from("blue "), format!("{:<6}", Color::Blue { hue: 0 })); + assert_eq!(String::from(" blue "), format!("{:^6}", Color::Blue { hue: 0 })); + assert_eq!(String::from("bl"), format!("{:.2}", Color::Blue { hue: 0 })); +} + #[test] fn to_yellow_string() { assert_eq!(String::from("yellow"), format!("{}", Color::Yellow));