#pragma once #include namespace NUnifiedAgent { template using TFMaybe = TMaybe; template inline constexpr TFMaybe> MakeFMaybe(T&& value) { return TMaybe, ::NMaybe::TPolicyUndefinedFail>(std::forward(value)); } template inline constexpr TFMaybe MakeFMaybe(TArgs&&... args) { return TFMaybe(typename TFMaybe::TInPlace{}, std::forward(args)...); } template inline constexpr TFMaybe> MakeFMaybe(const TMaybe& source) { return source.Defined() ? MakeFMaybe(*source) : Nothing(); } }