summaryrefslogtreecommitdiffstats
path: root/yql/essentials/types/binary_json/write.h
blob: a8ebd732c73433017b6ebaaea29fb04f92e653f2 (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
26
27
28
29
30
31
#pragma once

#include "format.h"
#include "read.h"

#include <util/generic/maybe.h>

#include <variant>

namespace NYql::NUdf {
class TUnboxedValue;
}; // namespace NYql::NUdf

namespace NKikimr::NBinaryJson {

/**
 * @brief Translates textual JSON into BinaryJson
 */
std::variant<TBinaryJson, TString> SerializeToBinaryJson(TStringBuf json, bool allowInf = false);

/**
 * @brief Translates DOM layout from `yql/library/dom` library into BinaryJson
 */
TBinaryJson SerializeToBinaryJson(const NYql::NUdf::TUnboxedValue& value);

/**
 * @brief Translates read cursor into a separate BinaryJson
 */
std::variant<TBinaryJson, TString> SerializeToBinaryJson(const NBinaryJson::TEntryCursor& value);

} // namespace NKikimr::NBinaryJson