Improve Result's Display impl for extension values (#424)
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.
This commit is contained in:
parent
788fda074e
commit
d4f50bd350
|
@ -997,7 +997,7 @@ impl fmt::Display for Result {
|
||||||
if let Some(x) = name {
|
if let Some(x) = name {
|
||||||
fmt.write_str(x)
|
fmt.write_str(x)
|
||||||
} else {
|
} else {
|
||||||
self.0.fmt(fmt)
|
<Self as fmt::Debug>::fmt(&self, fmt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1535,7 +1535,9 @@ pub fn generate_result(ident: Ident, enum_: &vk_parse::Enums) -> TokenStream {
|
||||||
if let Some(x) = name {
|
if let Some(x) = name {
|
||||||
fmt.write_str(x)
|
fmt.write_str(x)
|
||||||
} else {
|
} 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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue