Refactor to use format for http responses
This commit is contained in:
@@ -79,6 +79,8 @@
|
||||
* - **Simple concatenation**: Basic string + number + string combinations
|
||||
* - **Compile-time optimization**: When all types/values known at compile time
|
||||
* - **Template contexts**: Where compile-time buffer sizing is beneficial
|
||||
* - **IMPORTANT**: Only works with compile-time string literals, NOT runtime
|
||||
* const char*
|
||||
*
|
||||
* ## Optimization Details:
|
||||
* The function uses `ArenaAllocator::allocate_remaining_space()` to claim all
|
||||
@@ -206,10 +208,12 @@ inline constexpr DoubleTerm term(double s) { return DoubleTerm(s); }
|
||||
* optimized term writers for maximum speed.
|
||||
*
|
||||
* ## Supported Types:
|
||||
* - **String literals**: C-style string literals and arrays
|
||||
* - **String literals**: C-style string literals and arrays ("Hello", "World")
|
||||
* - **Integers**: All integral types (int, int64_t, uint32_t, etc.)
|
||||
* - **Floating point**: double (uses high-precision Grisu2 algorithm)
|
||||
* - **Custom types**: Via specialization of `detail::term()`
|
||||
* - **NOT supported**: const char* variables, std::string, std::string_view
|
||||
* variables
|
||||
*
|
||||
* ## Performance Characteristics:
|
||||
* - **Compile-time buffer sizing**: Buffer size calculated at compile time (no
|
||||
@@ -245,16 +249,23 @@ inline constexpr DoubleTerm term(double s) { return DoubleTerm(s); }
|
||||
*
|
||||
* ## When to Use:
|
||||
* - **Hot paths**: Performance-critical code where formatting speed matters
|
||||
* - **Known types**: When argument types are known at compile time
|
||||
* - **Compile-time string literals**: All string arguments must be string
|
||||
* literals (e.g., "Hello")
|
||||
* - **Simple formatting**: Concatenation and basic type conversion
|
||||
* - **Template code**: Where compile-time optimization is beneficial
|
||||
* - **CANNOT use runtime strings**: No const char*, std::string, or string_view
|
||||
* variables
|
||||
*
|
||||
* ## When to Use format() Instead:
|
||||
* - **Printf-style formatting**: When you need format specifiers like "%d",
|
||||
* "%.2f"
|
||||
* - **Runtime flexibility**: When format strings come from variables/config
|
||||
* - **Complex formatting**: When you need padding, precision, etc.
|
||||
* - **Convenience**: For quick debugging or non-critical paths
|
||||
* - **Runtime strings**: When you have const char*, std::string, or string_view
|
||||
* variables
|
||||
* - **Dynamic content**: When format strings come from variables/config/user
|
||||
* input
|
||||
* - **Complex formatting**: When you need padding, precision, width specifiers
|
||||
* - **Mixed literal/runtime**: When combining string literals with runtime
|
||||
* string data
|
||||
*
|
||||
* @note All arguments are passed by forwarding reference for optimal
|
||||
* performance
|
||||
|
||||
Reference in New Issue
Block a user