goud_engine/core/error/
reverse_mapping.rs1use super::codes::{
4 GoudErrorCode, ERR_ALREADY_INITIALIZED, ERR_AUDIO_INIT_FAILED, ERR_BACKEND_NOT_SUPPORTED,
5 ERR_BUFFER_CREATION_FAILED, ERR_COMPONENT_ALREADY_EXISTS, ERR_COMPONENT_NOT_FOUND,
6 ERR_CONTEXT_DESTROYED, ERR_DRAW_CALL_FAILED, ERR_ENTITY_ALREADY_EXISTS, ERR_ENTITY_NOT_FOUND,
7 ERR_HANDLE_EXPIRED, ERR_HANDLE_TYPE_MISMATCH, ERR_INITIALIZATION_FAILED,
8 ERR_INPUT_DEVICE_NOT_FOUND, ERR_INTERNAL_ERROR, ERR_INVALID_CONTEXT, ERR_INVALID_HANDLE,
9 ERR_INVALID_INPUT_ACTION, ERR_INVALID_STATE, ERR_NOT_IMPLEMENTED, ERR_NOT_INITIALIZED,
10 ERR_PHYSICS_INIT_FAILED, ERR_PLATFORM_ERROR, ERR_PROVIDER_OPERATION_FAILED, ERR_QUERY_FAILED,
11 ERR_RENDER_TARGET_FAILED, ERR_RESOURCE_ALREADY_EXISTS, ERR_RESOURCE_INVALID_FORMAT,
12 ERR_RESOURCE_LOAD_FAILED, ERR_RESOURCE_NOT_FOUND, ERR_SHADER_COMPILATION_FAILED,
13 ERR_SHADER_LINK_FAILED, ERR_TEXTURE_CREATION_FAILED, ERR_WINDOW_CREATION_FAILED, SUCCESS,
14};
15use super::types::GoudError;
16
17impl GoudError {
18 pub fn from_error_code(code: GoudErrorCode) -> Option<Self> {
37 match code {
38 SUCCESS => None,
39
40 ERR_NOT_INITIALIZED => Some(GoudError::NotInitialized),
42 ERR_ALREADY_INITIALIZED => Some(GoudError::AlreadyInitialized),
43 ERR_INVALID_CONTEXT => Some(GoudError::InvalidContext),
44 ERR_CONTEXT_DESTROYED => Some(GoudError::ContextDestroyed),
45 ERR_INITIALIZATION_FAILED => Some(GoudError::InitializationFailed(String::new())),
46
47 ERR_RESOURCE_NOT_FOUND => Some(GoudError::ResourceNotFound(String::new())),
49 ERR_RESOURCE_LOAD_FAILED => Some(GoudError::ResourceLoadFailed(String::new())),
50 ERR_RESOURCE_INVALID_FORMAT => Some(GoudError::ResourceInvalidFormat(String::new())),
51 ERR_RESOURCE_ALREADY_EXISTS => Some(GoudError::ResourceAlreadyExists(String::new())),
52 ERR_INVALID_HANDLE => Some(GoudError::InvalidHandle),
53 ERR_HANDLE_EXPIRED => Some(GoudError::HandleExpired),
54 ERR_HANDLE_TYPE_MISMATCH => Some(GoudError::HandleTypeMismatch),
55
56 ERR_SHADER_COMPILATION_FAILED => {
58 Some(GoudError::ShaderCompilationFailed(String::new()))
59 }
60 ERR_SHADER_LINK_FAILED => Some(GoudError::ShaderLinkFailed(String::new())),
61 ERR_TEXTURE_CREATION_FAILED => Some(GoudError::TextureCreationFailed(String::new())),
62 ERR_BUFFER_CREATION_FAILED => Some(GoudError::BufferCreationFailed(String::new())),
63 ERR_RENDER_TARGET_FAILED => Some(GoudError::RenderTargetFailed(String::new())),
64 ERR_BACKEND_NOT_SUPPORTED => Some(GoudError::BackendNotSupported(String::new())),
65 ERR_DRAW_CALL_FAILED => Some(GoudError::DrawCallFailed(String::new())),
66
67 ERR_ENTITY_NOT_FOUND => Some(GoudError::EntityNotFound),
69 ERR_ENTITY_ALREADY_EXISTS => Some(GoudError::EntityAlreadyExists),
70 ERR_COMPONENT_NOT_FOUND => Some(GoudError::ComponentNotFound),
71 ERR_COMPONENT_ALREADY_EXISTS => Some(GoudError::ComponentAlreadyExists),
72 ERR_QUERY_FAILED => Some(GoudError::QueryFailed(String::new())),
73
74 ERR_INPUT_DEVICE_NOT_FOUND => Some(GoudError::InputDeviceNotFound),
76 ERR_INVALID_INPUT_ACTION => Some(GoudError::InvalidInputAction(String::new())),
77
78 ERR_WINDOW_CREATION_FAILED => Some(GoudError::WindowCreationFailed(String::new())),
80 ERR_AUDIO_INIT_FAILED => Some(GoudError::AudioInitFailed(String::new())),
81 ERR_PHYSICS_INIT_FAILED => Some(GoudError::PhysicsInitFailed(String::new())),
82 ERR_PLATFORM_ERROR => Some(GoudError::PlatformError(String::new())),
83
84 ERR_PROVIDER_OPERATION_FAILED => Some(GoudError::ProviderError {
86 subsystem: "unknown",
87 message: String::new(),
88 }),
89
90 ERR_INTERNAL_ERROR => Some(GoudError::InternalError(String::new())),
92 ERR_NOT_IMPLEMENTED => Some(GoudError::NotImplemented(String::new())),
93 ERR_INVALID_STATE => Some(GoudError::InvalidState(String::new())),
94
95 _ => None,
96 }
97 }
98}