1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
use {
    core::fmt::{self, Display},
    gpu_alloc_types::{DeviceMapError, OutOfMemory},
};
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub enum AllocationError {
    
    
    
    OutOfDeviceMemory,
    
    
    OutOfHostMemory,
    
    
    NoCompatibleMemoryTypes,
    
    
    
    
    
    
    TooManyObjects,
}
impl From<OutOfMemory> for AllocationError {
    fn from(err: OutOfMemory) -> Self {
        match err {
            OutOfMemory::OutOfDeviceMemory => AllocationError::OutOfDeviceMemory,
            OutOfMemory::OutOfHostMemory => AllocationError::OutOfHostMemory,
        }
    }
}
impl Display for AllocationError {
    fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
        match self {
            AllocationError::OutOfDeviceMemory => fmt.write_str("Device memory exhausted"),
            AllocationError::OutOfHostMemory => fmt.write_str("Host memory exhausted"),
            AllocationError::NoCompatibleMemoryTypes => fmt.write_str(
                "No compatible memory types from requested types support requested usage",
            ),
            AllocationError::TooManyObjects => {
                fmt.write_str("Reached limit on allocated memory objects count")
            }
        }
    }
}
#[cfg(feature = "std")]
impl std::error::Error for AllocationError {}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub enum MapError {
    
    
    
    OutOfDeviceMemory,
    
    
    OutOfHostMemory,
    
    
    
    NonHostVisible,
    
    
    
    MapFailed,
}
impl From<DeviceMapError> for MapError {
    fn from(err: DeviceMapError) -> Self {
        match err {
            DeviceMapError::OutOfDeviceMemory => MapError::OutOfDeviceMemory,
            DeviceMapError::OutOfHostMemory => MapError::OutOfHostMemory,
            DeviceMapError::MapFailed => MapError::MapFailed,
        }
    }
}
impl From<OutOfMemory> for MapError {
    fn from(err: OutOfMemory) -> Self {
        match err {
            OutOfMemory::OutOfDeviceMemory => MapError::OutOfDeviceMemory,
            OutOfMemory::OutOfHostMemory => MapError::OutOfHostMemory,
        }
    }
}
impl Display for MapError {
    fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
        match self {
            MapError::OutOfDeviceMemory => fmt.write_str("Device memory exhausted"),
            MapError::OutOfHostMemory => fmt.write_str("Host memory exhausted"),
            MapError::MapFailed => fmt.write_str("Failed to map memory object"),
            MapError::NonHostVisible => fmt.write_str("Impossible to map non-host-visible memory"),
        }
    }
}
#[cfg(feature = "std")]
impl std::error::Error for MapError {}