/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/
 *
 * 
 * File:   defines.h
 * Author: pgess
 *
 * Created on May 7, 2019, 8:11 PM
 */

#include "jeayeson/jeayeson.hpp"
#include <cstdint>

#ifndef DEFINES_H
#define DEFINES_H



typedef intmax_t (*FnNoArgs)();
typedef intmax_t (*Fn1Args)(intmax_t);
typedef intmax_t (*Fn2Args)(intmax_t, intmax_t);
typedef intmax_t (*Fn3Args)(intmax_t, intmax_t, intmax_t);

class Config {
private:
  json_map __storage;
  static Config __self;
  Config();

public:
  static std::string get(std::string key) {
    return __self.__storage.get_for_path<json_value>(key).get<std::string>();
  }
};

#endif /* DEFINES_H */

