#pragma once
#include <cstdint>
#include <string>
#include "common/enums/path_semantic.h"
namespace lbug {
namespace main {
struct ClientConfigDefault {
static constexpr uint64_t TIMEOUT_IN_MS = 0;
static constexpr uint32_t VAR_LENGTH_MAX_DEPTH = 30;
static constexpr uint64_t SPARSE_FRONTIER_THRESHOLD = 1000;
static constexpr bool ENABLE_SEMI_MASK = true;
static constexpr bool ENABLE_ZONE_MAP = true;
static constexpr bool ENABLE_PROGRESS_BAR = false;
static constexpr uint64_t SHOW_PROGRESS_AFTER = 1000;
static constexpr common::PathSemantic RECURSIVE_PATTERN_SEMANTIC = common::PathSemantic::WALK;
static constexpr uint32_t RECURSIVE_PATTERN_FACTOR = 100;
static constexpr bool DISABLE_MAP_KEY_CHECK = true;
static constexpr uint64_t WARNING_LIMIT = 8 * 1024;
static constexpr bool ENABLE_PLAN_OPTIMIZER = true;
static constexpr bool ENABLE_INTERNAL_CATALOG = false;
};
struct ClientConfig {
std::string homeDirectory;
std::string fileSearchPath;
bool enableSemiMask = ClientConfigDefault::ENABLE_SEMI_MASK;
bool enableZoneMap = ClientConfigDefault::ENABLE_ZONE_MAP;
uint64_t numThreads = 1;
uint64_t timeoutInMS = ClientConfigDefault::TIMEOUT_IN_MS;
uint32_t varLengthMaxDepth = ClientConfigDefault::VAR_LENGTH_MAX_DEPTH;
uint64_t sparseFrontierThreshold = ClientConfigDefault::SPARSE_FRONTIER_THRESHOLD;
bool enableProgressBar = ClientConfigDefault::ENABLE_PROGRESS_BAR;
uint64_t showProgressAfter = ClientConfigDefault::SHOW_PROGRESS_AFTER;
common::PathSemantic recursivePatternSemantic = ClientConfigDefault::RECURSIVE_PATTERN_SEMANTIC;
uint32_t recursivePatternCardinalityScaleFactor = ClientConfigDefault::RECURSIVE_PATTERN_FACTOR;
uint64_t warningLimit = ClientConfigDefault::WARNING_LIMIT;
bool disableMapKeyCheck = ClientConfigDefault::DISABLE_MAP_KEY_CHECK;
bool enablePlanOptimizer = ClientConfigDefault::ENABLE_PLAN_OPTIMIZER;
bool enableInternalCatalog = ClientConfigDefault::ENABLE_INTERNAL_CATALOG;
};
} }