98 lines
3.8 KiB
C
98 lines
3.8 KiB
C
/*
|
||
* constants.h — Project-wide named constants.
|
||
*
|
||
* Eliminates magic numbers flagged by readability-magic-numbers.
|
||
* Every literal integer/float in source should reference a named constant.
|
||
*/
|
||
#ifndef CBM_CONSTANTS_H
|
||
#define CBM_CONSTANTS_H
|
||
|
||
/* ── Allocation counts ───────────────────────────────────────── */
|
||
enum { CBM_ALLOC_ONE = 1 }; /* calloc(CBM_ALLOC_ONE, sizeof(T)) */
|
||
|
||
/* ── Byte / character constants ──────────────────────────────── */
|
||
enum {
|
||
CBM_BYTE_RANGE = 256, /* full byte range 0x00–0xFF */
|
||
CBM_QUOTE_PAIR = 2, /* two quote characters (open + close) */
|
||
CBM_QUOTE_OFFSET = 1, /* skip opening quote */
|
||
};
|
||
|
||
/* ── Size units (powers of 2) ────────────────────────────────── */
|
||
enum {
|
||
CBM_SZ_2 = 2,
|
||
CBM_SZ_3 = 3,
|
||
CBM_SZ_4 = 4,
|
||
CBM_SZ_5 = 5,
|
||
CBM_SZ_6 = 6,
|
||
CBM_SZ_7 = 7,
|
||
CBM_SZ_8 = 8,
|
||
CBM_SZ_16 = 16,
|
||
CBM_SZ_32 = 32,
|
||
CBM_SZ_64 = 64,
|
||
CBM_SZ_128 = 128,
|
||
CBM_SZ_256 = 256,
|
||
CBM_SZ_512 = 512,
|
||
CBM_SZ_1K = 1024,
|
||
CBM_SZ_2K = 2048,
|
||
CBM_SZ_4K = 4096,
|
||
CBM_SZ_8K = 8192,
|
||
CBM_SZ_16K = 16384,
|
||
CBM_SZ_32K = 32768,
|
||
CBM_SZ_64K = 65536,
|
||
};
|
||
|
||
/* ── Numeric bases and common factors ────────────────────────── */
|
||
enum {
|
||
CBM_DECIMAL_BASE = 10,
|
||
CBM_HEX_BASE = 16,
|
||
CBM_PERCENT = 100,
|
||
};
|
||
|
||
/* ── Tree-sitter field name helper ───────────────────────────── */
|
||
/* Usage: ts_node_child_by_field_name(node, TS_FIELD("callee"))
|
||
* Expands to: ts_node_child_by_field_name(node, TS_FIELD("callee"))
|
||
* The sizeof includes the NUL terminator, so subtract 1. */
|
||
#define TS_FIELD(name) (name), (uint32_t)(sizeof(name) - SKIP_ONE)
|
||
|
||
/* ── Tree-sitter line offset ─────────────────────────────────── */
|
||
/* ts_node row is 0-based; source lines are 1-based. */
|
||
enum { TS_LINE_OFFSET = 1 };
|
||
|
||
/* Common offset constants. */
|
||
|
||
/* Common offset constants. */
|
||
|
||
/* ── Sentinel values ─────────────────────────────────────────── */
|
||
enum {
|
||
CBM_NOT_FOUND = -1, /* search miss, invalid index */
|
||
CBM_INIT_DONE = 1, /* initialization flag */
|
||
};
|
||
|
||
/* ── Default pagination limits ───────────────────────────────── */
|
||
/* Default page size for search_graph and the underlying store-layer search.
|
||
* Responses land in an LLM agent's context window, so the default favors a
|
||
* cheap first page (~50 TOON rows ≈ 1.5K tokens) over raw coverage; the
|
||
* response always carries 'total' and 'has_more', and agents page via
|
||
* offset+limit or narrow with label/file_pattern when has_more is true. */
|
||
enum { CBM_DEFAULT_SEARCH_LIMIT = 50 };
|
||
|
||
/* ── Time conversion factors ─────────────────────────────────── */
|
||
#define CBM_NSEC_PER_SEC 1000000000ULL
|
||
#define CBM_USEC_PER_SEC 1000000ULL
|
||
#define CBM_MSEC_PER_SEC 1000ULL
|
||
#define CBM_NSEC_PER_USEC 1000ULL
|
||
#define CBM_NSEC_PER_MSEC 1000000ULL
|
||
|
||
/* ── Common string/buffer sizes ──────────────────────────────── */
|
||
enum {
|
||
CBM_SMALL_BUF = 3, /* small scratch buffers */
|
||
CBM_NAME_BUF = 4, /* name buffer slots */
|
||
CBM_PATH_MAX = 1024, /* path buffer size */
|
||
CBM_LINE_BUF = 512, /* line read buffer */
|
||
};
|
||
|
||
/* Common offset constants (used across many files). */
|
||
enum { SKIP_ONE = 1, PAIR_LEN = 2 };
|
||
|
||
#endif /* CBM_CONSTANTS_H */
|