Make Debug impls optional
When disabled, this buys us a 12% reduction in buildtime.
This commit is contained in:
parent
e34f755ece
commit
1700dcdf05
|
@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
- examples: Use `c_char` for pointer to raw string (#521)
|
||||
- Device extension `khr::PipelineExecutableProperties` and `khr::TimelineSemaphore` now expose `fn device()` instead of `fn instance()` (#499)
|
||||
- Changed `khr::PipelineExecutableProperties::new()` and `khr::TimelineSemaphore::new()` to take `instance` and `device` as arguments (#499)
|
||||
- To allow faster builds, Vulkan structures only implement `Debug` if the `debug` feature is enabled, which is the default (#482)
|
||||
|
||||
### Removed
|
||||
|
||||
|
|
|
@ -14,11 +14,13 @@ edition = "2018"
|
|||
libloading = { version = "0.7", optional = true }
|
||||
|
||||
[features]
|
||||
default = ["linked"]
|
||||
default = ["linked", "debug"]
|
||||
# Link the Vulkan loader at compile time.
|
||||
linked = []
|
||||
# Support searching for the Vulkan loader manually at runtime.
|
||||
loaded = ["libloading"]
|
||||
# Whether Vulkan structs should implement Debug
|
||||
debug = []
|
||||
|
||||
[package.metadata.release]
|
||||
no-dev-version = true
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1710,6 +1710,7 @@ pub fn derive_debug(_struct: &vkxml::Struct, union_types: &HashSet<&str>) -> Opt
|
|||
});
|
||||
let name_str = name.to_string();
|
||||
let q = quote! {
|
||||
#[cfg(feature = "debug")]
|
||||
impl fmt::Debug for #name {
|
||||
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
||||
fmt.debug_struct(#name_str)
|
||||
|
@ -2133,7 +2134,7 @@ pub fn generate_struct(
|
|||
let setter_tokens = derive_setters(_struct, root_structs);
|
||||
let manual_derive_tokens = manual_derives(_struct);
|
||||
let dbg_str = if debug_tokens.is_none() {
|
||||
quote!(Debug,)
|
||||
quote!(#[cfg_attr(feature = "debug", derive(Debug))])
|
||||
} else {
|
||||
quote!()
|
||||
};
|
||||
|
@ -2145,7 +2146,8 @@ pub fn generate_struct(
|
|||
let khronos_link = khronos_link(&_struct.name);
|
||||
quote! {
|
||||
#[repr(C)]
|
||||
#[derive(Copy, Clone, #default_str #dbg_str #manual_derive_tokens)]
|
||||
#dbg_str
|
||||
#[derive(Copy, Clone, #default_str #manual_derive_tokens)]
|
||||
#[doc = #khronos_link]
|
||||
pub struct #name {
|
||||
#(#params,)*
|
||||
|
|
Loading…
Reference in a new issue