/* * Copyright (C) 2022 Riyyi * * SPDX-License-Identifier: MIT */ #include // min #include // size_t #include // setprecision #include // defaultfloat, fixed #include // numeric_limits #include // stringstream #include #include #include "util/format/builder.h" namespace Util::Format { void Builder::putLiteral(std::string_view literal) { for (size_t i = 0; i < literal.length(); ++i) { putCharacter(literal[i]); if (literal[i] == '{' || literal[i] == '}') { ++i; } } } void Builder::putF32(float number, uint8_t precision) const { precision = std::min(precision, static_cast(std::numeric_limits::digits10)); std::stringstream stream; stream << std::fixed << std::setprecision(precision) << number << std::defaultfloat << std::setprecision(6); std::string string = stream.str(); m_builder << string; } void Builder::putF64(double number, uint8_t precision) const { precision = std::min(precision, static_cast(std::numeric_limits::digits10)); std::stringstream stream; stream << std::fixed << std::setprecision(precision) << number << std::defaultfloat << std::setprecision(6); std::string string = stream.str(); m_builder << string; } } // namespace Util::Format