MCPcopy Create free account
hub / github.com/deathkiller/jazz2-native / formatFormatters

Function formatFormatters

Sources/Shared/Base/Format.cpp:536–558  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

534 }
535
536 std::size_t formatFormatters(char* buffer, std::size_t bufferSize, const char* const format, BufferFormatter* const formatters, std::size_t formatterCount) {
537 std::size_t bufferOffset = 0;
538 formatWith([buffer, bufferSize, &bufferOffset](Containers::StringView data) {
539 if (buffer != nullptr) {
540 std::size_t bufferLeft = (bufferSize >= bufferOffset ? bufferSize - bufferOffset : 0);
541 std::size_t size = data.size();
542 std::memcpy(buffer + bufferOffset, data.data(), size > bufferLeft ? bufferLeft : size);
543 DEATH_DEBUG_ASSERT(size <= bufferLeft, ("Buffer too small, expected at least {} but got {}", bufferOffset + size, bufferSize), );
544 }
545 bufferOffset += data.size();
546 }, [buffer, bufferSize, &bufferOffset](BufferFormatter& formatter, FormatContext& context) {
547 std::size_t size;
548 if (buffer != nullptr) {
549 std::size_t bufferLeft = (bufferSize >= bufferOffset ? bufferSize - bufferOffset : 0);
550 size = formatter({ buffer + bufferOffset, bufferLeft }, context);
551 DEATH_DEBUG_ASSERT(bufferOffset + size <= bufferSize, ("Buffer too small, expected at least {} but got {}", bufferOffset + size, bufferSize), );
552 } else {
553 size = formatter(nullptr, context);
554 }
555 bufferOffset += size;
556 }, format, Containers::arrayView(formatters, formatterCount));
557 return bufferOffset;
558 }
559
560}}

Callers 1

formatArgsFunction · 0.85

Calls 4

formatWithFunction · 0.85
arrayViewFunction · 0.50
sizeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected