A common utilties library for my future creations
 
 
 
 
Go to file
Brett 1e293c7dba argparse update
a "janky" solution has been added to the argparse module of BLT.
The new update allows for the creation of "help disablers" which are basically akin to how git operates with
git submodule
git commit
etc
the primary command "git" can have flags (in the case of the tests, --no-color)
while having multiple help disabling sub commands (currently graphics and blt)
everything before the sub command arg will be processed as a primary command flag
everything after the sub command arg will be processed by the sub command arg_parse
this allows for effective namespacing of command modules

TODO:
- Make this as an action?
- cleanup the code
- use a name that makes more sense than "help disabler"
2023-09-16 16:27:48 -04:00
include/blt argparse update 2023-09-16 16:27:48 -04:00
libraries argparse update 2023-09-16 16:27:48 -04:00
src argparse update 2023-09-16 16:27:48 -04:00
.gitignore update ignore 2023-08-09 21:49:24 -04:00
.gitmodules Parallel hashmap submodule 2022-12-26 23:44:02 -05:00
CMakeLists.txt cpu timer 2023-09-13 16:49:56 -04:00
CMakeSettings.json String buffer 2023-07-10 18:45:43 -04:00
LICENSE String buffer 2023-07-10 18:45:43 -04:00
README.md add parallel hashmaps optional submodule 2023-07-29 02:03:28 -04:00
build_and_run_debug.sh Two children delete is still broken. Single / no child delete works fine. 2023-01-12 14:09:34 -05:00
commit.sh Setup inital cmake file 2022-12-23 13:50:27 -05:00
design.txt String buffer 2023-07-10 18:45:43 -04:00
icon.png String buffer 2023-07-10 18:45:43 -04:00
icon_large.png String buffer 2023-07-10 18:45:43 -04:00
icon_small.png String buffer 2023-07-10 18:45:43 -04:00

README.md

BLT v0.8.0a

A C++20 common utilities library to make thing easy!

Icon


Specialties

blt::logging.v2

Found in the header file include/std/logging.h, blt::logging is a fast and simple single header logging library which can be used independently of BLT. Just include the header file anywhere in your project and in ONE cpp file define #define BLT_LOGGING_IMPLEMENTATION. If you are using BLT as a CMake library (as you should!) this is done for you.

  • Compile Time Config

    • Using CMake
      • Several options are provided which disable various logging contexts, as such global logging can be disabled by passing -DBLT_DISABLE_LOGGING:BOOL=ON
      • Options follow the pattern of BLT_DISABLE_LEVEL where level is one of TRACE,DEBUG,INFO,WARN,ERROR, or FATAL.
        • This allows for individual logging levels to be disabled while leaving the others functional. These options can be combined.
        • See CMakeLists.txt for a complete list of options.
    • Standalone
      • The CMake options define global variables in a config file. If you are using logging standalone you will need to remove the config include.
      • Macros can be used in the same pattern of BLT_DISABLE_LEVEL to disable the various logging levels

Features / Examples

  • Data Structures

    • Queue / Stack
      • faster than std::queue / std::stack
      • backed by a contiguous array
  • Utility

    • Simple Random Wrapper Interface
    • Simple random functions based on the PCG Hash
    • String Functions

      • starts_with
      • ends_with
      • contains
      • toLowerCase
      • toUpperCase
      • split
      • trim
    • Logging
      • See blt::logging section above
    • Time
      • Current time in nanoseconds (without all the c++ gobbledygook)
        • Java's currentTimeMilliseconds
        • nanoTime as well
        • std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::high_resolution_clock::now().time_since_epoch()).count() becomes blt::system::nanoTime()
      • Formatted time string with year/month/date + current time
  • Profiling

    • Basic profiler with history and formatted output