vulkanalia_vma/
enums.rs

1// SPDX-License-Identifier: Apache-2.0
2
3use crate::vma::*;
4
5#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
6pub enum MemoryUsage {
7    #[default]
8    Auto,
9    AutoPreferDevice,
10    AutoPreferHost,
11    GpuLazilyAllocated,
12    Unknown,
13}
14
15impl From<MemoryUsage> for VmaMemoryUsage {
16    fn from(value: MemoryUsage) -> Self {
17        use MemoryUsage::*;
18        match value {
19            Auto => VmaMemoryUsage::AUTO,
20            AutoPreferDevice => VmaMemoryUsage::AUTO_PREFER_DEVICE,
21            AutoPreferHost => VmaMemoryUsage::AUTO_PREFER_HOST,
22            GpuLazilyAllocated => VmaMemoryUsage::GPU_LAZILY_ALLOCATED,
23            Unknown => VmaMemoryUsage::UNKNOWN,
24        }
25    }
26}
27
28#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
29pub enum DefragmentationMoveOperation {
30    Copy,
31    Ignore,
32    Destroy,
33}
34
35#[allow(deprecated)]
36impl From<DefragmentationMoveOperation> for VmaDefragmentationMoveOperation {
37    fn from(value: DefragmentationMoveOperation) -> Self {
38        use DefragmentationMoveOperation::*;
39        match value {
40            Copy => VmaDefragmentationMoveOperation::COPY,
41            Ignore => VmaDefragmentationMoveOperation::IGNORE,
42            Destroy => VmaDefragmentationMoveOperation::DESTROY,
43        }
44    }
45}