1use thiserror::Error;
4
5#[derive(Error, Debug)]
7pub enum InitError {
8 #[error("Failed to create buffer object: {0}")]
10 CreateBufferObject(String),
11
12 #[error("Failed to create texture: {0}")]
14 CreateTexture(String),
15
16 #[error("Failed to create shader: {0}")]
18 CreateShader(String),
19
20 #[error("Failed to compile shader: {0}")]
22 CompileShader(String),
23
24 #[error("Failed to link program: {0}")]
26 LinkProgram(String),
27
28 #[error("Failed to create vertex array: {0}")]
30 CreateVertexArray(String),
31
32 #[error("Unsupported OpenGL version: {0}")]
34 UnsupportedVersion(String),
35
36 #[error("Initialization error: {0}")]
38 Generic(String),
39}
40
41#[derive(Error, Debug)]
45pub enum RenderError {
46 #[error("OpenGL error: {0}")]
48 OpenGLError(String),
49
50 #[error("Invalid texture: {0}")]
52 InvalidTexture(String),
53
54 #[error("Renderer was destroyed")]
56 RendererDestroyed,
57
58 #[error("Rendering error: {0}")]
60 Generic(String),
61}
62
63pub type InitResult<T> = Result<T, InitError>;
67
68pub type RenderResult<T> = Result<T, RenderError>;