diff --git a/ydb/core/tx/tiering/rule/object.h b/ydb/core/tx/tiering/rule/object.h index a597d6204cea..566f10e5efc8 100644 --- a/ydb/core/tx/tiering/rule/object.h +++ b/ydb/core/tx/tiering/rule/object.h @@ -1,6 +1,7 @@ #pragma once #include -#include +#include + #include #include #include diff --git a/ydb/core/tx/tiering/rule/ya.make b/ydb/core/tx/tiering/rule/ya.make index 70f2715e6409..80b625857c1f 100644 --- a/ydb/core/tx/tiering/rule/ya.make +++ b/ydb/core/tx/tiering/rule/ya.make @@ -14,6 +14,7 @@ PEERDIR( ydb/services/metadata/abstract ydb/services/metadata/common ydb/services/metadata/initializer + ydb/services/metadata/manager ydb/services/bg_tasks/abstract ydb/core/tx/schemeshard ) diff --git a/ydb/library/conclusion/result.h b/ydb/library/conclusion/result.h index 17d72180b3b5..0d9af2fbdcde 100644 --- a/ydb/library/conclusion/result.h +++ b/ydb/library/conclusion/result.h @@ -50,12 +50,26 @@ class TConclusion { return *result; } + TResult& MutableResult() { + auto result = std::get_if(&Result); + Y_ABORT_UNLESS(result, "incorrect object for result request"); + return *result; + } + TResult&& DetachResult() { auto result = std::get_if(&Result); Y_ABORT_UNLESS(result, "incorrect object for result request"); return std::move(*result); } + const TResult* operator->() const { + return &GetResult(); + } + + TResult* operator->() { + return &MutableResult(); + } + const TResult& operator*() const { return GetResult(); } diff --git a/ydb/services/bg_tasks/abstract/interface.h b/ydb/services/bg_tasks/abstract/interface.h index 273224c968cf..aac519e55c7f 100644 --- a/ydb/services/bg_tasks/abstract/interface.h +++ b/ydb/services/bg_tasks/abstract/interface.h @@ -164,10 +164,12 @@ class TCommonInterfaceContainer { } const IInterface* operator->() const { + AFL_VERIFY(Object); return Object.get(); } IInterface* operator->() { + AFL_VERIFY(Object); return Object.get(); }