1// Copyright Epic Games, Inc. All Rights Reserved.
2/* date = July 27th 2021 10:54 am */
3
4#ifndef SYMS_BASE_OVERRIDES_CHECK_H
5#define SYMS_BASE_OVERRIDES_CHECK_H
6
7// This will check every possible overridable that could be provided by the
8// user. All overrideables are required at this layer.
9
10
11// NOTE(allen): basic types
12
13#if !defined(SYMS_S8)
14# error "SYMS: SYMS_S8 was not #define'd. It should be #define'd to the name of a signed 8-bit integer type (int8_t in the C Standard Library)."
15#endif
16
17#if !defined(SYMS_S16)
18# error "SYMS: SYMS_S16 was not #define'd. It should be #define'd to the name of a signed 16-bit integer type (int16_t in the C Standard Library)."
19#endif
20
21#if !defined(SYMS_S32)
22# error "SYMS: SYMS_S32 was not #define'd. It should be #define'd to the name of a signed 32-bit integer type (int32_t in the C Standard Library)."
23#endif
24
25#if !defined(SYMS_S64)
26# error "SYMS: SYMS_S64 was not #define'd. It should be #define'd to the name of a signed 64-bit integer type (int64_t in the C Standard Library)."
27#endif
28
29#if !defined(SYMS_U8)
30# error "SYMS: SYMS_U8 was not #define'd. It should be #define'd to the name of an unsigned 8-bit integer type (uint8_t in the C Standard Library)."
31#endif
32
33#if !defined(SYMS_U16)
34# error "SYMS: SYMS_U16 was not #define'd. It should be #define'd to the name of an unsigned 16-bit integer type (uint16_t in the C Standard Library)."
35#endif
36
37#if !defined(SYMS_U32)
38# error "SYMS: SYMS_U32 was not #define'd. It should be #define'd to the name of an unsigned 32-bit integer type (uint32_t in the C Standard Library)."
39#endif
40
41#if !defined(SYMS_U64)
42# error "SYMS: SYMS_U64 was not #define'd. It should be #define'd to the name of an unsigned 64-bit integer type (uint64_t in the C Standard Library)."
43#endif
44
45#if !defined(SYMS_PRIu64)
46# error "SYMS: SYMS_PRIu64 was not #define'd. It should be #define'd to a string constant suitable for printing 64-bit unsigned integers in C format strings (PRIu64 in the C Standard Library)."
47#endif
48
49#if !defined(SYMS_PRId64)
50# error "SYMS: SYMS_PRId64 was not #define'd. It should be #define'd to a string constant suitable for printing 64-bit signed integers in C format strings (PRId64 in the C Standard Library)."
51#endif
52
53#if !defined(SYMS_PRIx64)
54# error "SYMS: SYMS_PRIx64 was not #define'd. It should be #define'd to a string constant suitable for printing 64-bit hex integers in C format strings (PRIx64 in the C Standard Library)."
55#endif
56
57
58// NOTE(allen): large data operations
59
60#if !defined(syms_memmove)
61# error "SYMS: syms_memmove was not #define'd. It should be #define'd to the name of a memmove implementation."
62#endif
63
64#if !defined(syms_memset)
65# error "SYMS: syms_memset was not #define'd. It should be #define'd to the name of a memset implementation."
66#endif
67
68#if !defined(syms_memcmp)
69# error "SYMS: syms_memcmp was not #define'd. It should be #define'd to the name of a memcmp implementation."
70#endif
71
72#if !defined(syms_strlen)
73# error "SYMS: syms_strlen was not #define'd. It should be #define'd to the name of a strlen implementation."
74#endif
75
76#if !defined(syms_memisnull)
77# error "SYMS: syms_memisnull was not #define'd. It should be #define'd to the name of a memisnull implementation."
78#endif
79
80
81// NOTE(allen): assert
82
83#if !defined(SYMS_ASSERT_BREAK)
84# error "SYMS: SYMS_ASSERT_BREAK(message) was not #define'd. It should be #define'd to something that you'd like expanded when an assertion failure occurs."
85#endif
86
87
88// NOTE(allen): arena
89
90#if !defined(SYMS_Arena)
91# error "SYMS: SYMS_Arena was not #define'd."
92#endif
93
94#if !defined(syms_arena_alloc__impl)
95# error "SYMS: syms_arena_alloc__impl was not #define'd."
96#endif
97
98#if !defined(syms_arena_release__impl)
99# error "SYMS: syms_arena_release__impl was not #define'd."
100#endif
101
102#if !defined(syms_arena_get_pos__impl)
103# error "SYMS: syms_arena_get_pos__impl was not #define'd."
104#endif
105
106#if !defined(syms_arena_push__impl)
107# error "SYMS: syms_arena_push__impl was not #define'd."
108#endif
109
110#if !defined(syms_arena_pop_to__impl)
111# error "SYMS: syms_arena_pop_to__impl was not #define'd."
112#endif
113
114#if !defined(syms_arena_set_auto_align__impl)
115# error "SYMS: syms_arena_set_auto_align__impl was not #define'd."
116#endif
117
118#if !defined(syms_arena_absorb__impl)
119# error "SYMS: syms_arena_absorb__impl was not #define'd."
120#endif
121
122#if !defined(syms_arena_tidy__impl)
123# error "SYMS: syms_arena_tidy__impl was not #define'd."