#pragma once

#include <string>
#include <set>

struct FileInfo
{
    FileInfo()
    {
        fileName = "";
        options = "";
        errPath = "";
        outPath = "";
        outDepPath = "";
        text = "";
        error = -1;
        includesAdded = 0;
        style = -1;
        lvl = 0;
    }

    FileInfo(const std::string& _fileName, const std::string& _options, const std::string& _errPath, const std::string& _outPath,
             const std::string& _outDepPath, const std::string& _text, int errorInit = -1)
    {
        fileName = _fileName;
        options = _options;
        errPath = _errPath;
        outPath = _outPath;
        outDepPath = _outDepPath;
        text = _text;
        error = errorInit;
        includesAdded = 0;
        style = -1;
        lvl = 0;
    }

    int error;
    std::string fileName;
    std::string options;
    std::string errPath;
    std::string outPath;
    std::string outDepPath;
    std::string text;
    int style; // -1 unk, 0 fixed, 1 fixed ext, 2 free, 3 uniform
    int includesAdded;
    std::set<std::string> includes;
    int lvl;

    std::string convertStyle(bool needRewrite = true);
    void convertToUniform();
};
