aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/string/unittests
Commit message (Collapse)AuthorAgeFilesLines
* Fix MakeFormattableViewlukyan12 days1-0/+13
| | | | commit_hash:0e4b24c65451e75f168b456cd0d271ddebb7219d
* YT-22593: More trivial TString->std::string migrationsbabenko2025-02-221-2/+2
| | | | | [nodiff:runtime] commit_hash:1ba799aed1703ab7c6304b6da7090b3337f768dd
* Make TCompactFlatMap formattableeshcherbin2025-02-031-0/+1
| | | | commit_hash:e5c092a9d0375881554f1d3bc905c662070956bf
* Squeeze contiguous sequences of blocks in loggingngc2242025-01-141-0/+7
| | | | commit_hash:5dda6f5ef324f03c99af3dae32ebf4a059f02bd3
* YT-18571: library/cpp/yt/small_containers -> library/cpp/yt/compact_containersbabenko2025-01-121-1/+1
| | | | commit_hash:fc31d2770ebeffeb513c4535bd146c731b7f78fb
* YT: Removed extra trailing comma in std::tuple formattingbulatman2025-01-101-0/+7
| | | | commit_hash:19b37bd3d7e3b4d80e4844676c881bbef1fec76b
* YT-23435: Parse format string at compile timearkady-e1ppa2024-11-181-0/+5
| | | | commit_hash:804530d1ee861ff42d7d8cad25d9f569b4feaacf
* YT-22885: DEFINE_ENUM_UNKNOWN_VALUE, string-related conversionsbabenko2024-10-261-2/+44
| | | | commit_hash:14c7e42422af750383f04855b4a7ea6b267b92d2
* std::variant formatter: require that arguments are formattablepavook2024-09-191-0/+1
| | | | commit_hash:f3123d7cb2022bdc565cc9aadd347deb2cd235d3
* YT-22473: Enable for-each formatting in known rangesarkady-e1ppa2024-08-071-0/+102
| | | | 5a3405e64b730f0056e381af07658d6c2edcb92b
* YT-21868: Enable stat analysis in some other placesarkady-e1ppa2024-06-131-0/+6
| | | | | | | | | | | We slightly rework inner workings of stat analysis. For almost any sane use case the behavior is identical, but should compile a little faster. If you send string literals like `char[N]` or `const char*` make them constexpr. If you can't (e.g. `ex.what()` case) wrap it in `TStringBuf`, if you want the "by the book; 100% right" solution then wrap it in `TRuntimeFormat` instead. `SetRequestInfo` methods now statically checks the format. Only one error was found -- hooray! Some other internal stuff was added, a lot removed -- don't worry about it. You won't be able to see the difference 62050dfe8a9cedc1289f18e80397ff33a8e2ecdb
* YT-21868: Refactor NYT::Formatarkady-e1ppa2024-06-073-23/+25
| | | | | | | | | | | | | | | | | | | | NYT::Format had several problems: 1. There are too many ways to enable printing of T. Not all are equally good. You could specialize TValueFormatter, you could write an overload of FormatValue, you could write an overload of ToString, you could write an overload of operator << for special stream or you could specialize the Out function. 2. If you attempt to print T which cannot be printed, you get a linker error without a proper source location which is very frustrating to work with. 3. There is no static analysis of format string performed even when it is possible. 4. If you write FormatValue overload, you still have to write ToString overload if you want to use this function (and people tend to use it quite a bit, since it is defined for util types and enums. This pr addresses these issues to some extent. Relevant changes: 1. The only way to support NYT::Format is to define the FormatValue overload. Otherwise, you get a compile-time error. 2. Format overloads have changed: Now you have two options for general use: ``` TString Format(TStaticFormat<TArgs...> fmt, TArgs&&... args); TString Format(TRuntimeFormat fmt, TArgs&&... args); ``` Either overload checks if TArg has a FormatValue overload. TStaticFormat performs a compile-time check of flags and the argument count. It binds to any string literal and constexpr string/string_view (and TStringBuf). TRuntimeFormat has to be mentioned explicitly. Otherwise, you will get a compile-time error for using runtime variable as a format. 3(!!!). Types which name begins with NYT:: have a specialization of ToString function which uses FormatValue. Thus, if you write class in namespace NYT and define FormatValue, you get ToString automatically. If your type is not from namespace enclosing NYT, you can just call NYT::ToString for the same effect. This limitation was caused by the fact, that we cannot review all of the external projects code which might inherit from stl classes or adopt some other questionable code practises which may completely break the dispatching mechanism of ToString due to the specialization (there were such cases). Proper documentation of this library will be added soon, so that this interaction is made known. This limitation might be lifted later 77beb68082e10aaf48be1842aad8aba63f26c1bd
* YT: Add NYT::FormatVectorionagamed2024-05-131-0/+7
| | | | 5da23499c430efcdae980093fd84c8391537660c
* ,Speedup scheduling failures commitrogday2024-02-161-0/+1
| | | | 62c4cf20966ac12ba500e1b7f7f048969a8aacca
* Drop TEnumIndexedVectorbabenko2024-01-271-1/+0
|
* Introduce TEnumIndexedArray as a refurbished version of TEnumIndexedVectorbabenko2024-01-251-0/+1
|
* Library import 6 (#888)AlexSm2024-01-091-0/+9
|
* Support h-format for escaped (but unquoted) stringsbabenko2023-07-261-0/+11
|
* Introduce TLazyMultiValueFormatterifsmirnov2023-07-061-0/+13
|
* YT: Escape back slash when format string with quotesbulatman2023-06-281-0/+7
|
* add ymake export to ydbalexv-smirnov2023-06-131-0/+17
|
* YT: Fix ParseEnum when custom domain names usedbulatman2023-06-011-0/+18
|
* Remove extra semicolons in ytbulatman2023-05-161-1/+1
|
* Revert ymake build from ydb oss exportalexv-smirnov2023-03-281-17/+0
|
* add library/cpp/actors, ymake build to ydb oss exportalexv-smirnov2023-03-151-0/+17
|
* Sane handling of %x and %X for pointers in Formatbabenko2022-09-191-3/+14
|
* Natively support %x and %X in Formatbabenko2022-08-261-1/+23
|
* intermediate changesarcadia-devtools2022-03-151-17/+0
| | | | ref:ca7a95e8c9a9d780f96497136a152091d54e61b5
* Restoring authorship annotation for <babenko@yandex-team.ru>. Commit 2 of 2.babenko2022-02-105-288/+288
|
* Restoring authorship annotation for <babenko@yandex-team.ru>. Commit 1 of 2.babenko2022-02-105-288/+288
|
* Restoring authorship annotation for <ignat@yandex-team.ru>. Commit 2 of 2.ignat2022-02-105-27/+27
|
* Restoring authorship annotation for <ignat@yandex-team.ru>. Commit 1 of 2.ignat2022-02-105-27/+27
|
* Restoring authorship annotation for <gritukan@yandex-team.ru>. Commit 2 of 2.gritukan2022-02-101-5/+5
|
* Restoring authorship annotation for <gritukan@yandex-team.ru>. Commit 1 of 2.gritukan2022-02-101-5/+5
|
* Restoring authorship annotation for <ermolovd@yandex-team.ru>. Commit 2 of 2.ermolovd2022-02-101-3/+3
|
* Restoring authorship annotation for <ermolovd@yandex-team.ru>. Commit 1 of 2.ermolovd2022-02-101-3/+3
|
* Restoring authorship annotation for <prime@yandex-team.ru>. Commit 2 of 2.prime2022-02-101-14/+14
|
* Restoring authorship annotation for <prime@yandex-team.ru>. Commit 1 of 2.prime2022-02-101-14/+14
|
* intermediate changesDevtools Arcadia2022-02-075-0/+337
ref:cde9a383711a11544ce7e107a78147fb96cc4029