#[non_exhaustive]pub struct LayerManifest {
pub name: &'static str,
pub spec_version: u32,
pub implementation_version: u32,
pub description: &'static str,
pub device_extensions: &'static [ExtensionProperties],
}Expand description
A Rust bindings of the layer manifest file.
The return type of Layer::manifest. This type is marked as non_exhaustive, because it will
evolve with the layer manifest schema.
The user should initialize the value of this type in a way that will still compile if new fields
are added. LayerManifest::default will initialize all fields to empty.
let mut manifest = LayerManifest::default();
manifest.name = "VK_LAYER_VENDOR_rust_example";
manifest.spec_version = vk::API_VERSION_1_1;Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.name: &'static strThe string used to uniquely identify this layer to applications.
The layer name should follow the
layer name convention
according to
LLP_LAYER_3.
spec_version: u32The VkLayerProperties::specVersion field. The "api_version" JSON node.
The major.minor.patch version number of the Vulkan API that the layer supports encoded as described in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers. It does not require the application to make use of that API version. It simply is an indication that the layer can support Vulkan API instance and device functions up to and including that API version.
implementation_version: u32The version of the layer implemented.
It is an integer, increasing with backward compatible changes. If the layer itself has any major changes, this number should change so the loader and/or application can identify it properly.
description: &'static strA high-level description of the layer and its intended use which provides additional details that can be used by the application to identify the layer.
The description shouldn’t be longer than VK_MAX_DESCRIPTION_SIZE bytes after encoded as a
null-terminated UTF-8 string. Otherwise, the layer framework will panic at runtime.
device_extensions: &'static [ExtensionProperties]Contains the list of device extension names supported by this layer.
An array of one or more elements is required if any device extensions are supported by a
layer; otherwise the array should be empty. In vkCreateDevice, the layer framework
removes the extensions mentioned here from the
VkDeviceCreateInfo::ppEnabledExtensionNames list.
Trait Implementations§
Source§impl Clone for LayerManifest
impl Clone for LayerManifest
Source§fn clone(&self) -> LayerManifest
fn clone(&self) -> LayerManifest
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Default for LayerManifest
impl Default for LayerManifest
Source§fn default() -> LayerManifest
fn default() -> LayerManifest
Source§impl LayerManifestExt for LayerManifest
Available on crate feature _test only.
impl LayerManifestExt for LayerManifest
_test only.Source§fn test_default() -> Self
fn test_default() -> Self
LayerManifest with reasonable fields.