Skip to content

Commit

Permalink
Improve Result's Display impl for extension values (#424)
Browse files Browse the repository at this point in the history
Previously, the `Display` impl for `vk::Result` did not include handling
for extension values. For example, `VK_ERROR_OUT_OF_DATE_KHR` would
display simply as `"-1000001004"`. Now, we fall back to the `Debug` impl
of the `Result` if the value is unknown (i.e. from an extension). This
preserves the current nice messages for non-extension values, and the
numeric output for truly unknown values, but displays the enum variant
name (e.g. `"ERROR_OUT_OF_DATE"`) for extension values.
  • Loading branch information
theo3 authored Apr 27, 2021
1 parent 788fda0 commit d4f50bd
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
2 changes: 1 addition & 1 deletion ash/src/vk/enums.rs
Original file line number Diff line number Diff line change
Expand Up @@ -997,7 +997,7 @@ impl fmt::Display for Result {
if let Some(x) = name {
fmt.write_str(x)
} else {
self.0.fmt(fmt)
<Self as fmt::Debug>::fmt(&self, fmt)
}
}
}
Expand Down
4 changes: 3 additions & 1 deletion generator/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1535,7 +1535,9 @@ pub fn generate_result(ident: Ident, enum_: &vk_parse::Enums) -> TokenStream {
if let Some(x) = name {
fmt.write_str(x)
} else {
self.0.fmt(fmt)
// If we don't have a nice message to show, call the generated `Debug` impl
// which includes *all* enum variants, including those from extensions.
<Self as fmt::Debug>::fmt(&self, fmt)
}
}
}
Expand Down

0 comments on commit d4f50bd

Please sign in to comment.