27template <
size_t N> [[nodiscard]]
constexpr base64_view base64(
const uint8_t (&arr)[N])
noexcept {
41template <
typename T,
typename = std::enable_if_t<std::is_
integral_v<T> && !std::is_same_v<T,
bool>>>
48template <
typename T, std::enable_if_t<std::is_
integral_v<T> && !std::is_same_v<T,
bool>,
int> = 0>
49[[nodiscard]]
constexpr auto bin_grouped(T val, uint8_t group,
char sep =
'_') noexcept {
57 using UnsignedT = std::make_unsigned_t<T>;
58 constexpr size_t total_bits =
sizeof(T) * 8;
59 const auto raw =
static_cast<UnsignedT
>(bg.value);
62 for (
size_t i = 0; i < total_bits; ++i) {
63 const size_t bit_idx = total_bits - 1 - i;
64 out.put((raw & (UnsignedT{1} << bit_idx)) ?
'1' :
'0');
66 if (bg.group_size != 0 && (i + 1) < total_bits && (bit_idx % bg.group_size == 0)) {
67 out.put(bg.separator);
75#if MICROFMT_SHARED_PROVIDE_DEFINITIONS
76#include "base_views.ipp"
Binary integer formatting views and grouping options.
Definition microfmt.hpp:881
#define MICROFMT_API_CLASS
Definition compat.hpp:181
#define MICROFMT_API
Definition compat.hpp:135
reloco::sink sink
Type-erased, zero-allocation output sink.
Definition microfmt.hpp:46
constexpr base64_view base64(span< const uint8_t > bytes) noexcept
Definition base_views.hpp:25
constexpr auto bin_grouped(T val, uint8_t group, char sep='_') noexcept
Definition base_views.hpp:49
constexpr bytes_view bytes(uint64_t count) noexcept
Definition format_helpers.hpp:82
Definition base_views.hpp:21
span< const uint8_t > data
Definition base_views.hpp:22
Definition base_views.hpp:42
char separator
Definition base_views.hpp:45
uint8_t group_size
Definition base_views.hpp:44
T value
Definition base_views.hpp:43