1use 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}