aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/public/result_format/yql_codec_results.cpp
blob: ac961cb3927fc865d609e2060e199d8c989faa50 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "yql_codec_results.h"

#include <library/cpp/string_utils/base64/base64.h>

#include <yql/essentials/utils/utf8.h>

namespace NYql {
namespace NResult {

constexpr TStringBuf TYsonResultWriter::VoidString;

void TYsonResultWriter::OnStringScalar(TStringBuf value) {
    if (!IsUtf8(value)) {
        TString encoded = Base64Encode(value);
        Writer_.OnBeginList();
        Writer_.OnListItem();
        Writer_.OnStringScalar(TStringBuf(encoded));
        Writer_.OnEndList();
    } else {
        Writer_.OnStringScalar(value);
    }
}

}
}