aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/minikql/computation/mkql_validate.h
blob: 62315b1e2d9f54e7c9e2751adc69a73193616251 (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
#pragma once

#include <yql/essentials/minikql/mkql_node.h>

namespace NKikimr {
namespace NMiniKQL {

struct TValidateErrorPolicyNone;
struct TValidateErrorPolicyThrow;
struct TValidateErrorPolicyFail;

template<class TErrorPolicy>
struct TValidateModeLazy;

template<class TErrorPolicy>
struct TValidateModeGreedy;

template<class TErrorPolicy, class TValidateMode = TValidateModeLazy<TErrorPolicy>>
struct TValidate {
    static NUdf::TUnboxedValue Value(const NUdf::IValueBuilder* valueBuilder, const TType* type, NUdf::TUnboxedValue&& value, const TString& message, bool* wrapped = nullptr);
    static void WrapCallable(const TCallableType* callableType, NUdf::TUnboxedValue& callable, const TString& message);
};

} // namespace MiniKQL
} // namespace NKikimr

#include "mkql_validate_impl.h"