From 3ae49326cda41c4dae172f6f2782e0a59233db8d Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 22 Aug 2021 19:00:58 -0500 Subject: [PATCH] better printing for enum flags --- core/conv.onyx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/core/conv.onyx b/core/conv.onyx index fba51cb1..acf53c87 100644 --- a/core/conv.onyx +++ b/core/conv.onyx @@ -577,7 +577,7 @@ str_format_va :: (format: str, buffer: [] u8, va: [] any) -> str { case #default do assert(false, "Bad enum backing type"); } - { + if !e.is_flags { for ^member: e.members { if value == member.value { output->write(member.name); @@ -586,6 +586,20 @@ str_format_va :: (format: str, buffer: [] u8, va: [] any) -> str { } output->write("UNKNOWN"); + + } else { + first := true; + for ^member: e.members { + if value & member.value != 0 { + if !first do output->write(" | "); + output->write(member.name); + first = false; + } + } + + if first { + output->write("None"); + } } } } -- 2.25.1