summaryrefslogtreecommitdiffstats
path: root/yql/essentials/tools/yql_highlight/generator.h
blob: 83341276ef9a44ab84295bee65da47c319ea9175 (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 <yql/essentials/sql/v1/highlight/sql_highlight.h>

#include <util/generic/ptr.h>
#include <util/folder/path.h>

namespace NSQLHighlight {

    class IGenerator: public TThrRefBase {
    public:
        using TPtr = TIntrusivePtr<IGenerator>;

        virtual void Write(IOutputStream& out, const THighlighting& highlighting, bool ansi) = 0;
        virtual void Write(const TFsPath& path, const THighlighting& highlighting, bool ansi) = 0;
    };

    using TGeneratorFunction = std::function<void(IOutputStream&, const THighlighting&, bool)>;

    IGenerator::TPtr MakeOnlyFileGenerator(TGeneratorFunction function);

} // namespace NSQLHighlight