tlibtoml/README.md

1.4 KiB

tlibtoml

A fork of libtoml rewritten to use tlibc instead of its own (worse) implementation of collections and strings. For example, Table from libtoml is just an array of key-value pairs, where search happens by calling strcmp() on each element. Such inefficient code hurts my mind, so i have no other choise than to rewrite this library.

Build

  1. Clone this repository.

    git clone https://timerix.ddns.net/git/Timerix/tlibtoml.git
    
  2. Install cbuild version specified in project.config.

  3. Clone tlibc. By default dependencies/tlibc.config expects that tlibc/ is present in the same directory as tlibtoml/. If you cloned it to another directory, change DEPENDENCIES_DIR in tlibtoml/project.user.config.

    git clone https://timerix.ddns.net/git/Timerix/tlibc.git
    
  4. Build and run tests

    cd tlibtoml
    cbuild build_exec exec
    
  5. To build library use tasks build_static_lib[_dbg] or build_shared_lib[_dbg]

Usage

#include "tlibtoml.h"

int main(){
    Deferral(32); // reserve memory for 32 defers
    try_fatal_void(tlibc_init());
    try_fatal_void(tlibtoml_init());
    Defer(tlibc_deinit());
    Defer(tlibtoml_deinit());

    Return 0; // call defers
}