Personal all-purpose utility library
Go to file
2023-08-29 22:57:31 +10:00
Misc dqn: Fix poison vet check, use FsFile for logs, various cleanup 2023-08-29 22:35:25 +10:00
_clang-format Inline the code directory 2021-08-09 09:03:15 +10:00
.gitignore Inline the code directory 2021-08-09 09:03:15 +10:00
b_stacktrace.h dqn: Reorganize the library 2023-08-16 21:59:38 +10:00
build.bat dqn: Fix poison vet check, use FsFile for logs, various cleanup 2023-08-29 22:35:25 +10:00
build.sh dqn: Forward Dqn_String8 implementation to Dqn_CString8 2022-10-15 17:12:13 +11:00
dqn_base.cpp dqn: Fix poison vet check, use FsFile for logs, various cleanup 2023-08-29 22:35:25 +10:00
dqn_base.h dqn: Fix poison vet check, use FsFile for logs, various cleanup 2023-08-29 22:35:25 +10:00
dqn_containers.cpp dqn: Add table of contents to each file 2023-07-05 22:39:43 +10:00
dqn_containers.h dqn: Add ASAN poisoning 2023-08-27 18:07:13 +10:00
dqn_debug.cpp dqn: Fix poison vet check, use FsFile for logs, various cleanup 2023-08-29 22:35:25 +10:00
dqn_debug.h dqn: Reduce ASAN guard size to 128 bytes, make it configurable 2023-08-29 22:57:31 +10:00
dqn_external.cpp dqn: Fix poison vet check, use FsFile for logs, various cleanup 2023-08-29 22:35:25 +10:00
dqn_external.h dqn: Put ASAN poisoning behind macros to allow vetting 2023-08-29 00:52:01 +10:00
dqn_hash.cpp dqn: Move printing above debug 2023-08-26 17:27:37 +10:00
dqn_hash.h dqn: Reorganize the library 2023-08-16 21:59:38 +10:00
dqn_helpers.cpp dqn: Reduce ASAN guard size to 128 bytes, make it configurable 2023-08-29 22:57:31 +10:00
dqn_helpers.h dqn: Fix poison vet check, use FsFile for logs, various cleanup 2023-08-29 22:35:25 +10:00
dqn_math.cpp dqn: Upgrade to latest lib 2023-08-25 20:35:04 +10:00
dqn_math.h dqn: Add MSVC SAL annotations 2023-08-25 23:42:09 +10:00
dqn_memory.cpp dqn: Reduce ASAN guard size to 128 bytes, make it configurable 2023-08-29 22:57:31 +10:00
dqn_memory.h dqn: Fix poison vet check, use FsFile for logs, various cleanup 2023-08-29 22:35:25 +10:00
dqn_platform.cpp dqn: Fix poison vet check, use FsFile for logs, various cleanup 2023-08-29 22:35:25 +10:00
dqn_platform.h dqn: Fix poison vet check, use FsFile for logs, various cleanup 2023-08-29 22:35:25 +10:00
dqn_strings.cpp dqn: Re-enable clang build flags 2023-08-25 23:49:03 +10:00
dqn_strings.h dqn: Move printing above debug 2023-08-26 17:27:37 +10:00
dqn.h dqn: Reduce ASAN guard size to 128 bytes, make it configurable 2023-08-29 22:57:31 +10:00
dqn.rdbg dqn: Move printing above debug 2023-08-26 17:27:37 +10:00
readme.md dqn: Fix up some grammar 2023-07-16 18:01:29 +10:00

Dqn

My personal standard library that provides allocator aware data structures, custom memory allocators and various miscellaneous helpers for prototyping. The library is a unity-build style library where data structures and functions are separated by category into files for organisation. You only need to include dqn.h which amalgamates all the files into one translation unit.

Build

To build with this library, copy all the *.[h|cpp] files at the root of the repository to your desired location, accessible by your project and in one header file include the header.

#include "dqn.h"

dqn.h includes all other files and their declaration into your header. In one .cpp file define the macro to enable the implementation of the header in that translation unit.

#define DQN_IMPLEMENTATION
#include "dqn.h"

Finally ensure that the compiler has in its search paths for the include directory where headers are located, e.g. -I <path/to/dqn/headers>.

Customisation

The headers provide macros to compile out sections that are not needed. This can be useful to speed up compile times or reduce binary size if you only need a particular part of the library. Each header contains a table-of-contents that denotes the macro to define to disable that section that should be defined before the header include.

#define DQN_NO_VARRAY       // Disable virtual array container
#define DQN_NO_JSON_BUILDER // Disable the JSON string builder
#include "dqn.h"