projects
/
onyx.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
4c89a86
)
better printing for enum flags
author
Brendan Hansen
<brendan.f.hansen@gmail.com>
Mon, 23 Aug 2021 00:00:58 +0000
(19:00 -0500)
committer
Brendan Hansen
<brendan.f.hansen@gmail.com>
Mon, 23 Aug 2021 00:00:58 +0000
(19:00 -0500)
core/conv.onyx
patch
|
blob
|
history
diff --git
a/core/conv.onyx
b/core/conv.onyx
index fba51cb1effc9133f7537b29d1fee5c4894eb50e..acf53c87d19e04006f7ec373837904ac037913d6 100644
(file)
--- 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");
+ }
}
}
}