| 219 | |
| 220 | template <class TRange, class TFormatter> |
| 221 | void FormatKeyValueRange(TStringBuilderBase* builder, const TRange& range, const TFormatter& formatter, size_t limit = std::numeric_limits<size_t>::max()) |
| 222 | { |
| 223 | builder->AppendChar('{'); |
| 224 | size_t index = 0; |
| 225 | for (const auto& item : range) { |
| 226 | if (index > 0) { |
| 227 | builder->AppendString(DefaultJoinToStringDelimiter); |
| 228 | } |
| 229 | if (index == limit) { |
| 230 | builder->AppendString(DefaultRangeEllipsisFormat); |
| 231 | break; |
| 232 | } |
| 233 | formatter(builder, item.first); |
| 234 | builder->AppendString(DefaultKeyValueDelimiter); |
| 235 | formatter(builder, item.second); |
| 236 | ++index; |
| 237 | } |
| 238 | builder->AppendChar('}'); |
| 239 | } |
| 240 | |
| 241 | //////////////////////////////////////////////////////////////////////////////// |
| 242 |
no test coverage detected