diff options
| author | vvvv <[email protected]> | 2025-09-26 14:21:53 +0300 |
|---|---|---|
| committer | vvvv <[email protected]> | 2025-09-26 14:35:02 +0300 |
| commit | e664ea1f749f613aa313379c775c2e7a7a268e64 (patch) | |
| tree | 9ad368ea9e17baeaf091a133b0064e09fe826428 | |
| parent | 9239d3fa83520c4cc193a272ed9c62bc5eec3e6b (diff) | |
Simplify formatting of langver
commit_hash:1ae54663218f72de44b8f3d1bcda3eb8763347a9
| -rw-r--r-- | yql/essentials/public/langver/ut/yql_langver_ut.cpp | 7 | ||||
| -rw-r--r-- | yql/essentials/public/langver/yql_langver.cpp | 10 | ||||
| -rw-r--r-- | yql/essentials/public/langver/yql_langver.h | 3 |
3 files changed, 20 insertions, 0 deletions
diff --git a/yql/essentials/public/langver/ut/yql_langver_ut.cpp b/yql/essentials/public/langver/ut/yql_langver_ut.cpp index 0b7b871ecf3..67f7586e643 100644 --- a/yql/essentials/public/langver/ut/yql_langver_ut.cpp +++ b/yql/essentials/public/langver/ut/yql_langver_ut.cpp @@ -34,6 +34,13 @@ Y_UNIT_TEST_SUITE(TLangVerTests) { UNIT_ASSERT_VALUES_EQUAL(b[s.Size()], 0); } + Y_UNIT_TEST(FormatString) { + UNIT_ASSERT(!FormatLangVersion(MakeLangVersion(99999, 1))); + UNIT_ASSERT(!FormatLangVersion(MakeLangVersion(999, 1))); + UNIT_ASSERT_VALUES_EQUAL(FormatLangVersion(MakeLangVersion(2025, 1)), "2025.01"); + UNIT_ASSERT_VALUES_EQUAL(FormatLangVersion(MakeLangVersion(2025, 12)), "2025.12"); + } + Y_UNIT_TEST(Deprecated) { UNIT_ASSERT(IsDeprecatedLangVersion(MakeLangVersion(2025,2),MakeLangVersion(2027,1))); UNIT_ASSERT(!IsDeprecatedLangVersion(MakeLangVersion(2025,3),MakeLangVersion(2025,1))); diff --git a/yql/essentials/public/langver/yql_langver.cpp b/yql/essentials/public/langver/yql_langver.cpp index df9297de7e4..5f91735eaa9 100644 --- a/yql/essentials/public/langver/yql_langver.cpp +++ b/yql/essentials/public/langver/yql_langver.cpp @@ -69,6 +69,16 @@ bool FormatLangVersion(TLangVersion ver, TLangVersionBuffer& buffer, TStringBuf& return true; } +TMaybe<TString> FormatLangVersion(TLangVersion ver) { + TLangVersionBuffer buffer; + TStringBuf result; + if (!FormatLangVersion(ver, buffer, result)) { + return Nothing(); + } + + return TString(result); +} + TLangVersion GetMaxReleasedLangVersion() { return MaxReleasedLangVersion; } diff --git a/yql/essentials/public/langver/yql_langver.h b/yql/essentials/public/langver/yql_langver.h index 10c968b9e7e..c646ce9ac08 100644 --- a/yql/essentials/public/langver/yql_langver.h +++ b/yql/essentials/public/langver/yql_langver.h @@ -1,5 +1,7 @@ #pragma once #include <util/generic/strbuf.h> +#include <util/generic/string.h> +#include <util/generic/maybe.h> #include <util/system/types.h> #include <array> @@ -58,6 +60,7 @@ using TLangVersionBuffer = std::array<char, LangVersionBufferSize>; bool IsValidLangVersion(TLangVersion ver); bool ParseLangVersion(TStringBuf str, TLangVersion& result); bool FormatLangVersion(TLangVersion ver, TLangVersionBuffer& buffer, TStringBuf& result); +TMaybe<TString> FormatLangVersion(TLangVersion ver); void EnumerateLangVersions(const std::function<void(TLangVersion)>& callback); enum class EBackportCompatibleFeaturesMode { |
