3.2 Data Structures

/* Debug levels */
typedef enum {
    D3TUI_LOG_ERROR = 0,
    D3TUI_LOG_WARN,
    D3TUI_LOG_INFO,
    D3TUI_LOG_DEBUG,
    D3TUI_LOG_TRACE
} d3tui_log_level_t;

/* Debug output backend */
typedef struct {
    const char *name;
    void (*write)(const char *msg, size_t len);
    void (*flush)(void);
    void *userdata;
} d3tui_debug_backend_t;

/* Debug system state */
typedef struct {
    d3tui_log_level_t level;           /* Minimum log level */
    d3tui_debug_backend_t *backends;   /* Array of backends */
    size_t backend_count;              /* Number of backends */
    bool enabled;                      /* Debug system enabled */
    bool timestamp;                    /* Include timestamps */
    bool colors;                       /* Use ANSI colors */
} d3tui_debug_state_t;

/* Memory tracking */
typedef struct {
    const char *file;
    int line;
    const char *function;
    size_t size;
    uint32_t magic;
} d3tui_mem_header_t;