summaryrefslogtreecommitdiff
path: root/include/tinyff/result.h
blob: f15af1b80aa98b1f819223c69f27f30dee3fec13 (plain)
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
#ifndef RESULT_H
#define RESULT_H

#include <stdbool.h>

typedef enum {
    FF_TRUE = true,
    FF_FALSE = false
} FF_FLAG;

typedef enum {
    // -- SUCCESS -- 
    FF_RESULT_OK = 0,

    // -- WARNINGS --
    FF_RESULT_WARN_DEBUG_DISABLED,
    FF_RESULT_WARN_NO_IMPL,

    // -- ERRORS --

    // File
    FF_RESULT_ERROR_INVALID_FILE,
    FF_RESULT_ERROR_READ_FILE_FAILURE,
    
    // Generic
    FF_RESULT_ERROR_OUT_OF_BOUNDS,

    // Media specific
    
    // PNG
    FF_RESULT_ERROR_INVALID_PNG_SIGNATURE,
    
    // BMP
    FF_RESULT_ERROR_INVALID_BMP_SIGNATURE,
    FF_RESULT_ERROR_INVALID_BMP_HEADER,

    // Archive (more general archives terms)
    FF_RESULT_ERROR_DECOMPRESSION_FAILURE,

    // Memory
    FF_RESULT_ERROR_MEMORY_ALLOCATION,

    // More will be created when more errors occur
} ff_result;

#endif