#pragma once #include "mkql_node.h" #include #define AS_VALUE(type, node) ::NKikimr::NMiniKQL::AsValue((node), __LOCATION__) #define AS_TYPE(type, node) ::NKikimr::NMiniKQL::AsType((node), __LOCATION__) #define AS_CALLABLE(name, node) ::NKikimr::NMiniKQL::AsCallable(TStringBuf(name), node, __LOCATION__) namespace NKikimr { namespace NMiniKQL { template T* AsValue(TRuntimeNode node, const TSourceLocation& location); template T* AsType(TType* type, const TSourceLocation& location); template const T* AsType(const TType* type, const TSourceLocation& location); template T* AsType(TRuntimeNode node, const TSourceLocation& location) { return AsType(node.GetStaticType(), location); } TCallable* AsCallable( const TStringBuf& name, TRuntimeNode node, const TSourceLocation& location); } // namespace NMiniKQL } // namespace NKikimr