summaryrefslogtreecommitdiffstats
path: root/src/common/ffdata.h
blob: 189c0fab27b94746fecc70fc3768eb52e4ad9d44 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma once

#include "common/FFstrbuf.h"

typedef enum FF_A_PACKED FFDataResultDocType {
    FF_RESULT_DOC_TYPE_DEFAULT = 0,
    FF_RESULT_DOC_TYPE_JSON,
    FF_RESULT_DOC_TYPE_CONFIG,
    FF_RESULT_DOC_TYPE_CONFIG_FULL,
} FFDataResultDocType;

// FFdata aggregates configuration, generation parameters, and output state used by fastfetch.
// It holds the parsed configuration document, a mutable JSON document for results, and related metadata.
typedef struct FFdata {
    yyjson_doc* configDoc;       // Parsed JSON configuration document
    yyjson_mut_doc* resultDoc;   // Mutable JSON document for storing results
    FFstrbuf structure;          // Custom output structure from command line
    FFstrbuf structureDisabled;  // Disabled modules in the output structure from command line
    FFstrbuf genConfigPath;      // Path to generate configuration file
    FFDataResultDocType docType; // Type of result document
    bool configLoaded;
} FFdata;