Add Handle::is_null() (#694)

This commit is contained in:
i509VCB 2023-05-06 14:25:42 -05:00 committed by GitHub
parent ad70ad7c60
commit fca01159ab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 1 deletions

View file

@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Added `VK_EXT_pipeline_properties` device extension (#622)
- Added `Handle::is_null()` to allow checking if a handle is a `NULL` value (#694)
- Update Vulkan-Headers to 1.3.246 (#697, #723)
- Added `VK_KHR_performance_query` device extension (#726)
- Added `VK_EXT_shader_object` device extension (#732)

View file

@ -45,8 +45,21 @@ pub(crate) unsafe fn ptr_chain_iter<T>(ptr: &mut T) -> impl Iterator<Item = *mut
Some(old)
})
}
pub trait Handle {
pub trait Handle: Sized {
const TYPE: ObjectType;
fn as_raw(self) -> u64;
fn from_raw(_: u64) -> Self;
/// Returns whether the handle is a `NULL` value.
///
/// # Example
///
/// ```
/// # use ash::vk::{Handle, Instance};
/// let instance = Instance::null();
/// assert!(instance.is_null());
/// ```
fn is_null(self) -> bool {
self.as_raw() == 0
}
}