lava 0.4.9

Rust wrapper to manipulate Vulkan more conveniently than with bindings.
Documentation
// Generated by `scripts/generate.js`

use utils::vk_traits::*;

/// Wrapper for [VkResult](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkResult.html).
#[repr(i32)]
#[derive(Debug, PartialEq, Copy, Clone)]
pub enum VkResult {
    Success = 0,
    NotReady = 1,
    Timeout = 2,
    EventSet = 3,
    EventReset = 4,
    Incomplete = 5,
    ErrorOutOfHostMemory = -1,
    ErrorOutOfDeviceMemory = -2,
    ErrorInitializationFailed = -3,
    ErrorDeviceLost = -4,
    ErrorMemoryMapFailed = -5,
    ErrorLayerNotPresent = -6,
    ErrorExtensionNotPresent = -7,
    ErrorFeatureNotPresent = -8,
    ErrorIncompatibleDriver = -9,
    ErrorTooManyObjects = -10,
    ErrorFormatNotSupported = -11,
    ErrorFragmentedPool = -12,
    ErrorUnknown = -13,
    ErrorOutOfPoolMemory = -1000069000,
    ErrorInvalidExternalHandle = -1000072003,
    ErrorFragmentation = -1000161000,
    ErrorInvalidOpaqueCaptureAddress = -1000257000,
    ErrorSurfaceLostKhr = -1000000000,
    ErrorNativeWindowInUseKhr = -1000000001,
    SuboptimalKhr = 1000001003,
    ErrorOutOfDateKhr = -1000001004,
    ErrorIncompatibleDisplayKhr = -1000003001,
    ErrorValidationFailedExt = -1000011001,
    ErrorInvalidShaderNv = -1000012000,
    ErrorIncompatibleVersionKhr = -1000150000,
    ErrorInvalidDrmFormatModifierPlaneLayoutExt = -1000158000,
    ErrorNotPermittedExt = -1000174001,
    ErrorFullScreenExclusiveModeLostExt = -1000255000,
    ThreadIdleKhr = 1000268000,
    ThreadDoneKhr = 1000268001,
    OperationDeferredKhr = 1000268002,
    OperationNotDeferredKhr = 1000268003,
    PipelineCompileRequiredExt = 1000297000,
}

#[doc(hidden)]
pub type RawVkResult = i32;

impl VkWrappedType<RawVkResult> for VkResult {
    fn vk_to_raw(src: &VkResult, dst: &mut RawVkResult) {
        *dst = *src as i32
    }
}

impl VkRawType<VkResult> for RawVkResult {
    fn vk_to_wrapped(src: &RawVkResult) -> VkResult {
        unsafe {
            *((src as *const i32) as *const VkResult)
        }
    }
}

impl Default for VkResult {
    fn default() -> VkResult {
        VkResult::Success
    }
}