microfmt
Zero-allocation C++ formatting for constrained environments
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
microfmt Namespace Reference

Namespaces

namespace  ansi
 
namespace  cbor
 
namespace  coro
 
namespace  detail
 
namespace  dwarf
 
namespace  gdb
 
namespace  json
 
namespace  log
 
namespace  md
 
namespace  pmr
 
namespace  unsafe
 

Classes

struct  aarch64_abi_traits
 DWARF unwind ABI traits for AArch64 (64-bit ARM). More...
 
struct  addr_offset_view
 Formats an address with a base + offset view: 0x7fff0000+0x140 More...
 
class  address_source
 
class  address_source_ref
 Type-erased abstract source iterator providing addresses to scan. More...
 
struct  address_source_traits
 
class  address_space
 
class  address_space< Tag, false >
 
class  address_space< Tag, true >
 
class  address_space_ref
 Type-erased, two-word handle to a remote address space. More...
 
struct  address_space_traits
 
struct  address_space_traits< fallible_local_space_tag >
 Traits for fallible_local_space_tag providing fault-safe memory reads and writes. More...
 
struct  address_space_traits< local_space_tag >
 Traits for the built-in local_space_tag. More...
 
class  address_translator
 
class  address_translator< Tag, false >
 
class  address_translator< Tag, true >
 
class  address_translator_ref
 Type-erased, two-word handle for virtual-to-physical address translation. More...
 
struct  address_translator_traits
 Static customization point describing a virtual-to-physical translator backend. More...
 
struct  aligned_text_view
 
struct  arm_abi_traits
 DWARF unwind ABI traits for ARM / Thumb (32-bit EABI). More...
 
class  arm_exidx_bytecode_decoder
 Decoder for the inline unwind bytecode packed in an EXIDX word, writing restored register states directly via register_context_ref. More...
 
struct  arm_exidx_entry
 One .ARM.exidx table entry. More...
 
struct  arm_exidx_unwinder_context
 Immutable context describing the EXIDX unwinder back to the type-erased handle. More...
 
struct  arm_exidx_unwinder_holder
 Self-contained holder owning the EXIDX scratch storage. More...
 
struct  arm_exidx_unwinder_tag
 Tag selecting the EXIDX unwinder in the traits customization point. More...
 
class  as_string_view
 Non-owning string view supporting advanced format specifiers. More...
 
class  asio_mutable_buffer_sink
 A sink adapter that writes formatted output directly into a boost::asio::mutable_buffer. More...
 
class  asio_streambuf_sink
 A sink adapter that writes formatted output into a boost::asio::streambuf dynamic buffer. More...
 
struct  auto_unit_view
 
struct  base64_view
 
class  basic_remote_container
 Owning typed container bound to a compile-time traits dispatcher. More...
 
struct  bin_grouped_view
 
struct  bin_view
 Explicit binary integer formatter (e.g. for bitfield and control register flags). More...
 
struct  binary_view
 
struct  bit_field
 
struct  bitfield_view
 
class  buffer_sink
 Output sink that stores formatted characters in an internal fixed-size stack/inline buffer. More...
 
struct  bytes_view
 Automatically formats byte counts into human-readable units (B, KiB, MiB, GiB, TiB). More...
 
class  c_string_sink
 Output sink that guarantees a null-terminated string within a fixed-size buffer. More...
 
class  c_string_span_sink
 Output sink that guarantees a null-terminated string within an externally provided, fixed-size memory buffer. More...
 
class  callback_sink
 Output sink that adapts any callable object (lambda, functor) to a sink. More...
 
struct  can_frame_view
 Non-owning CAN or CAN-FD frame descriptor for formatting. More...
 
struct  chained_unwinder_context
 
struct  chained_unwinder_tag
 
class  compat32_ptr
 Value-type pointer storing a 32-bit address (for 64-bit hosts). More...
 
struct  compile_string_holder
 
class  concrete_metadata_map
 Concrete mutable metadata map backed by an external span storage. More...
 
class  container_context
 External context holder capturing container state and traversal/formatting logic. More...
 
struct  container_options
 Configuration options for formatting container views. More...
 
class  container_sink
 
class  counting_sink
 Output sink that counts total formatted bytes without storing characters. More...
 
struct  default_key_fn
 
struct  default_val_fn
 
struct  demangle_view
 Formattable view over a demangled symbol. More...
 
class  dependent_value_scanner
 Typed wrapper owning the context for a dependent value scanner. More...
 
class  dependent_value_scanner< Tag, false >
 
class  dependent_value_scanner< Tag, true >
 
class  dependent_value_scanner_ref
 Type-erased reference for scanning memory using a custom logical predicate. More...
 
struct  dependent_value_scanner_traits
 Static customization point for scanning memory using a sliding-window predicate. More...
 
struct  dependent_value_scanner_traits< linear_dependent_value_scanner_tag >
 
struct  dl_elf_enumerator_context
 Empty context for dl_elf_enumerator_tag: dladdr and dl_iterate_phdr query the dynamic linker directly and require no per-instance state. More...
 
struct  dl_elf_enumerator_tag
 Tag selecting the dlfcn.h/dl_iterate_phdr-backed elf_image_enumerator_traits specialization. More...
 
struct  dl_symbol_resolver_tag
 Tag selecting the dladdr-backed symbol_resolver_traits specialization. More...
 
class  dwarf_cfi_decoder
 Decoder executing DWARF CFI bytecode against an address space and selective register context. More...
 
struct  dwarf_unwinder_context
 Immutable context describing a DWARF unwinder back to the type-erased handle. More...
 
struct  dwarf_unwinder_holder
 
struct  dwarf_unwinder_tag
 
class  elf_image_enumerator
 Typed owner for an ELF image-enumerator traits specialization. More...
 
class  elf_image_enumerator_ref
 Type-erased, two-word handle to an ELF image enumerator. More...
 
struct  elf_image_enumerator_traits
 
struct  elf_image_enumerator_traits< dl_elf_enumerator_tag >
 Traits binding dl_elf_enumerator_tag to dladdr/ dl_iterate_phdr-based ELF image introspection. More...
 
struct  elf_image_enumerator_traits< multi_elf_registry_tag< MaxImages > >
 Tag identifying multi_elf_registry_context in type-erased handles. More...
 
struct  elf_image_info
 Describes a loaded ELF image and the locations of its unwind tables. More...
 
struct  empty_register_context_tag
 
struct  enable_reflect_format
 Opt-in customization point for formatter<T> struct reflection. More...
 
struct  escaped_view
 
class  exception_frame
 
class  exception_frame< Tag, false >
 
class  exception_frame< Tag, true >
 
class  exception_frame_iterator
 Forward-only cursor iterating over a chain of trap frames. More...
 
class  exception_frame_ref
 Type-erased, two-word handle decoding exception/trap frames. More...
 
struct  exception_frame_traits
 Static customization point for decoding architecture trap frames. More...
 
class  exception_matcher
 Typed owner for an exception-matcher traits specialization. More...
 
class  exception_matcher_ref
 Type-erased hook detecting exception trampolines during unwinding. More...
 
struct  exception_matcher_traits
 
class  exidx_table_searcher
 Binary search over sorted .ARM.exidx unwind tables. More...
 
class  extab_byte_stream
 Byte cursor pulling opcodes sequentially across .ARM.extab words. More...
 
class  extab_stream_executor
 Executes a multi-word .ARM.extab bytecode program. More...
 
struct  fallible_local_space_tag
 Tag identifying the fallible local address space. More...
 
struct  filtered_pointer_range_view
 
struct  filtered_range_view
 
struct  fixed_point_view
 
struct  fixed_unwind_hint_registry_tag
 
class  foreign_string_view
 Streaming view of a foreign or non-contiguous string. More...
 
struct  format_args
 Type-erased, non-owning view of formatting arguments. More...
 
class  format_parse_context
 
struct  formatter
 
struct  formatter< addr_offset_view >
 
struct  formatter< aligned_text_view >
 
struct  formatter< ansi::style >
 
struct  formatter< ansi::styled_view< T > >
 
struct  formatter< as_string_view >
 Formatter for as_string_view supporting fill, alignment, width, precision, and debug escaping. More...
 
struct  formatter< auto_unit_view< T > >
 
struct  formatter< base64_view >
 
struct  formatter< bin_grouped_view< T > >
 
struct  formatter< bin_view< T > >
 
struct  formatter< binary_view< T > >
 
struct  formatter< bitfield_view >
 
struct  formatter< bool >
 
struct  formatter< boost::asio::ip::address >
 
struct  formatter< boost::asio::ip::address_v4 >
 
struct  formatter< boost::asio::ip::address_v6 >
 
struct  formatter< boost::asio::ip::basic_endpoint< InternetProtocol > >
 
struct  formatter< boost::chrono::duration< Rep, Period > >
 
struct  formatter< boost::chrono::time_point< Clock, Duration > >
 
struct  formatter< boost::container::small_vector< T, N, Allocator, Options > >
 
struct  formatter< boost::container::static_vector< T, Capacity, Options > >
 
struct  formatter< boost::dynamic_bitset< Block, Allocator > >
 
struct  formatter< boost::gregorian::date >
 
struct  formatter< boost::logic::tribool >
 
struct  formatter< boost::optional< T > >
 
struct  formatter< boost::outcome_v2::basic_result< R, S, NoValuePolicy > >
 
struct  formatter< boost::posix_time::ptime >
 
struct  formatter< boost::posix_time::time_duration >
 
struct  formatter< boost::rational< IntType > >
 
struct  formatter< boost::system::error_code >
 
struct  formatter< boost::system::error_condition >
 
struct  formatter< boost::variant2::variant< Ts... > >
 
struct  formatter< bytes_view >
 
struct  formatter< can_frame_view >
 
struct  formatter< cbor::cbor_map_view< Fn > >
 
struct  formatter< char * >
 
struct  formatter< char >
 
struct  formatter< char[N]>
 
struct  formatter< checked_value< T > >
 Formatter for reloco::checked_value<T> (aliased as microfmt::checked_value<T>). More...
 
struct  formatter< compat32_ptr< T > >
 Formatter for compat32_ptr. More...
 
struct  formatter< const char * >
 
struct  formatter< const char[N]>
 
struct  formatter< demangle_view >
 Formatter for demangle_view. More...
 
struct  formatter< detail::debug_view< T > >
 
struct  formatter< double >
 Formatter for double values using printf-compatible presentation. More...
 
struct  formatter< E, std::enable_if_t< detail::is_described_enum< E >::value > >
 
struct  formatter< escaped_view >
 
struct  formatter< expected< T, E > >
 
struct  formatter< filtered_pointer_range_view< T, Predicate > >
 
struct  formatter< filtered_range_view< Range, Predicate > >
 
struct  formatter< fixed_point_view< Scale, Decimals, IntType > >
 
struct  formatter< float >
 Formatter for float values using printf-compatible presentation. More...
 
struct  formatter< foreign_string_view >
 Formatter rendering a foreign_string_view. More...
 
struct  formatter< hash_view< T > >
 Formatter for hash_view. More...
 
struct  formatter< hex_view< T > >
 
struct  formatter< hexdump_view >
 
struct  formatter< hybrid_backtrace_view >
 Formatter for hybrid_backtrace_view. More...
 
struct  formatter< i2c_msg_view >
 
struct  formatter< join_view< It, Sentinel > >
 
struct  formatter< joined_span_view< T > >
 
struct  formatter< json::json_obj_view< Fn > >
 
struct  formatter< long double >
 Formatter for long double values using printf-compatible presentation. More...
 
struct  formatter< mac_view >
 
struct  formatter< map_range_view< KeyExtractor, ValExtractor, Iterator, Sentinel > >
 
struct  formatter< matrix_view< T, Rows, Cols > >
 
struct  formatter< memory_diff_view >
 
struct  formatter< memory_range_view >
 
struct  formatter< microfmt::log::split_string_view >
 
struct  formatter< microfmt::md::bold_view >
 
struct  formatter< microfmt::md::code_view >
 
struct  formatter< microfmt::md::image_view >
 
struct  formatter< microfmt::md::italic_view >
 
struct  formatter< microfmt::md::link_view >
 
struct  formatter< microfmt::md::strike_view >
 
struct  formatter< microfmt::remote_container_view >
 
struct  formatter< microfmt::remote_intrusive_ptr_view< T, RemotePtr, RemoteRefCount > >
 
struct  formatter< microfmt::remote_shared_ptr_view< T, RemotePtr, RemoteRefCount > >
 
struct  formatter< microfmt::remote_unique_ptr_view< T, RemotePtr > >
 
struct  formatter< microfmt::string_view >
 
struct  formatter< posix_errno >
 
struct  formatter< raw_ptr_view >
 
struct  formatter< raw_range_view< T > >
 
struct  formatter< reg_grid_view< WordType, N > >
 Formatter rendering reg_grid_view as an aligned register grid. More...
 
struct  formatter< reg_view< N, UInt > >
 Formatter for reg_view that decodes and renders register fields. More...
 
struct  formatter< register_context_view< aarch64_abi_traits > >
 
struct  formatter< register_context_view< arm_abi_traits > >
 
struct  formatter< register_context_view< riscv32_abi_traits > >
 
struct  formatter< register_context_view< riscv64_abi_traits > >
 
struct  formatter< register_context_view< x86_64_abi_traits > >
 
struct  formatter< register_context_view< x86_abi_traits > >
 
struct  formatter< reloco::basic_inline_string< Capacity, CharT, TraitsT > >
 Formatter for reloco::basic_inline_string<Capacity, CharT, TraitsT>. More...
 
struct  formatter< reloco::basic_sso_string< CharT, TraitsT > >
 Formatter for reloco::basic_sso_string<CharT, TraitsT>. More...
 
struct  formatter< reloco::basic_string< CharT, TraitsT > >
 Formatter for reloco::basic_string<CharT, TraitsT>. More...
 
struct  formatter< reloco::binary_heap< T, Compare > >
 Formatter for reloco::binary_heap<T, Compare>. More...
 
struct  formatter< reloco::boxed_slice< T > >
 Formatter for reloco::boxed_slice<T>. More...
 
struct  formatter< reloco::call_location >
 Formatter for reloco::call_location: file:line. More...
 
struct  formatter< reloco::call_location_ref >
 Formatter for reloco::call_location_ref: file:line, or <no location> when empty. More...
 
struct  formatter< reloco::cell< T > >
 Formatter for reloco::cell<T>: formats the current value. More...
 
struct  formatter< reloco::checked< T > >
 Formatter for reloco::checked<T>. Formats the wrapped value. More...
 
struct  formatter< reloco::collection_view< T > >
 Core formatter for type-erased collection views. More...
 
struct  formatter< reloco::cow< T > >
 Formatter for reloco::cow<T>. More...
 
struct  formatter< reloco::detail::mutable_associative_container_ref< T, Key > >
 Formatter for associative container references (e.g. flat_set, map adapters). More...
 
struct  formatter< reloco::detail::mutable_sequence_container_ref< T > >
 Formatter for sequence container references (e.g. vector adapter). More...
 
struct  formatter< reloco::detail::wide_int< N, Signed > >
 Formatter for reloco::detail::wide_int<N, Signed> (the reloco::fixed_int<N, Signed> fallback for widths beyond the native integers). More...
 
struct  formatter< reloco::duration >
 Formatter for reloco::duration. More...
 
struct  formatter< reloco::error >
 Formatter for reloco::error: the enum member's own name (e.g. out_of_range), via a hand-written name table kept in sync with error.hpp's member list, since the enum has no name-lookup helper. More...
 
struct  formatter< reloco::external_vector< T > >
 Formatter for reloco::external_vector<T>: [val1, val2, ...]. More...
 
struct  formatter< reloco::fixed_point< Rep, FracBits >, std::enable_if_t< std::is_arithmetic_v< Rep > > >
 Formatter for reloco::fixed_point<Rep, FracBits> with a built-in integral Rep. More...
 
struct  formatter< reloco::flat_hash_map< Key, Mapped, Hash, KeyEqual > >
 Formatter for reloco::flat_hash_map<Key, Mapped, Hash, KeyEqual>. More...
 
struct  formatter< reloco::flat_hash_set< T, Hash, KeyEqual > >
 Formatter for reloco::flat_hash_set<T, Hash, KeyEqual>. More...
 
struct  formatter< reloco::flat_map< Key, Mapped, Compare > >
 Formatter for reloco::flat_map<Key, Mapped, Compare>. More...
 
struct  formatter< reloco::flat_set< T, Compare > >
 Formatter for reloco::flat_set<T, Compare>. More...
 
struct  formatter< reloco::inline_flat_map< Key, Mapped, Capacity, Compare > >
 Formatter for reloco::inline_flat_map<Key, Mapped, Capacity, Compare>. More...
 
struct  formatter< reloco::inline_flat_set< T, Capacity, Compare > >
 Formatter for reloco::inline_flat_set<T, Capacity, Compare>. More...
 
struct  formatter< reloco::inline_vec_deque< T, Capacity > >
 Formatter for reloco::inline_vec_deque<T, Capacity>. More...
 
struct  formatter< reloco::inline_vector< T, Capacity > >
 Formatter for reloco::inline_vector<T, Capacity>. More...
 
struct  formatter< reloco::instant >
 Formatter for reloco::instant. More...
 
struct  formatter< reloco::lru_cache< Key, Mapped, Hash, KeyEqual > >
 Formatter for reloco::lru_cache<Key, Mapped, Hash, KeyEqual>. More...
 
struct  formatter< reloco::masked_pointer< T, AuthPolicy > >
 Formatter for reloco::masked_pointer<T, AuthPolicy>: the authenticated pointer address (0x...), or (null). Authenticating a corrupted pointer follows the policy's own failure behavior. More...
 
struct  formatter< reloco::non_zero< T > >
 Formatter for reloco::non_zero<T>. Formats the wrapped value. More...
 
struct  formatter< reloco::obfuscated_decrypted_view< N > >
 Formatter for reloco::obfuscated_decrypted_view<N> – the type returned by obfuscated_string<N>::decrypt()/RELOCO_OBFUSCATED_STR. More...
 
struct  formatter< reloco::obfuscated_string< N > >
 Formatter for reloco::obfuscated_string<N> itself. More...
 
struct  formatter< reloco::obfuscated_string_ref >
 Formatter for reloco::obfuscated_string_ref – the type-erased handle (see RELOCO_DECLARE_OBFUSCATED_STR/RELOCO_DEFINE_OBFUSCATED_STR in obfuscated_string.hpp). More...
 
struct  formatter< reloco::optional< T > >
 Formatter for reloco::optional<T>. More...
 
struct  formatter< reloco::ordering >
 Formatter for reloco::ordering. More...
 
struct  formatter< reloco::outline_vec_deque< T > >
 Formatter for reloco::outline_vec_deque<T>. More...
 
struct  formatter< reloco::outline_vector< T > >
 Formatter for reloco::outline_vector<T>. More...
 
struct  formatter< reloco::packed_bits< T > >
 Formatter for reloco::packed_bits<T>: the raw packed integer; specifiers apply to it. More...
 
struct  formatter< reloco::rc< T > >
 Formatter for reloco::rc<T>. More...
 
struct  formatter< reloco::saturating< T > >
 Formatter for reloco::saturating<T>. Formats the wrapped value. More...
 
struct  formatter< reloco::shared_ptr< T > >
 Formatter for reloco::shared_ptr<T>. More...
 
struct  formatter< reloco::sso_flat_map< Key, Mapped, InlineCapacity, Compare > >
 Formatter for reloco::sso_flat_map<Key, Mapped, InlineCapacity, Compare>. More...
 
struct  formatter< reloco::sso_flat_set< T, InlineCapacity, Compare > >
 Formatter for reloco::sso_flat_set<T, InlineCapacity, Compare>. More...
 
struct  formatter< reloco::sso_vec_deque< T, InlineCapacity > >
 Formatter for reloco::sso_vec_deque<T, InlineCapacity>. More...
 
struct  formatter< reloco::sso_vector< T, InlineCapacity > >
 Formatter for reloco::sso_vector<T, InlineCapacity>. More...
 
struct  formatter< reloco::tree_map< Key, Mapped, Compare > >
 Formatter for reloco::tree_map<Key, Mapped, Compare>. More...
 
struct  formatter< reloco::tree_set< T, Compare > >
 Formatter for reloco::tree_set<T, Compare>. More...
 
struct  formatter< reloco::type_id >
 Formatter for reloco::type_id, the RTTI-free process-wide type identity from <reloco/type_id.hpp>. More...
 
struct  formatter< reloco::unique_ptr< T > >
 Formatter for reloco::unique_ptr<T>. More...
 
struct  formatter< reloco::variant< Ts... > >
 Formatter for reloco::variant<Ts...>: formats the active alternative like std::variant. More...
 
struct  formatter< reloco::vec_deque< T > >
 Formatter for reloco::vec_deque<T>. More...
 
struct  formatter< reloco::vector< T > >
 Formatter for reloco::vector<T>. More...
 
struct  formatter< reloco::weak_ptr< T > >
 Formatter for reloco::weak_ptr<T>. More...
 
struct  formatter< reloco::weak_rc< T > >
 Formatter for reloco::weak_rc<T>. More...
 
struct  formatter< reloco::wrapping< T > >
 Formatter for reloco::wrapping<T>. Formats the wrapped value. More...
 
struct  formatter< remote_backtrace_view >
 Formatter for remote_backtrace_view. More...
 
struct  formatter< remote_basic_string_view< Layout > >
 
struct  formatter< remote_diag_ref< T > >
 Formatter for remote_diag_ref. More...
 
struct  formatter< remote_fn_ptr >
 Formatter for remote_fn_ptr. More...
 
struct  formatter< remote_intrusive_ptr< T, RO, RP, RRC > >
 
struct  formatter< remote_memory_diff_view >
 
struct  formatter< remote_object_view >
 
struct  formatter< remote_ref< T > >
 Formatter that lazily loads and renders a remote object via remote_ref. More...
 
struct  formatter< remote_shared_ptr< T, RP, RRC > >
 
struct  formatter< remote_string_view >
 Formatter rendering a remote_string_view. More...
 
struct  formatter< remote_symbol_view >
 Formatter for remote_symbol_view. More...
 
struct  formatter< remote_trap_view >
 Formatter for remote_trap_view. More...
 
struct  formatter< remote_unique_ptr< T, RP > >
 
struct  formatter< repeated_view< T > >
 
struct  formatter< sbintime_view< T > >
 Formatter for sbintime_view values. More...
 
struct  formatter< semver >
 
struct  formatter< spi_transfer_view >
 
struct  formatter< std::basic_string< CharT, Traits, Alloc > >
 Formatter for std::basic_string / std::basic_string_view values. More...
 
struct  formatter< std::chrono::duration< Rep, Period > >
 
struct  formatter< std::chrono::time_point< std::chrono::steady_clock, Duration > >
 
struct  formatter< std::chrono::time_point< std::chrono::system_clock, Duration > >
 
struct  formatter< std::error_category >
 
struct  formatter< std::error_code >
 
struct  formatter< std::monostate >
 Formatter for std::monostate, rendering it as null. More...
 
struct  formatter< std::nullptr_t >
 
struct  formatter< std::optional< T > >
 
struct  formatter< std::string_view >
 
struct  formatter< std::system_error >
 
struct  formatter< std::variant< Ts... > >
 Formatter for std::variant, delegating to the variant_view formatter. More...
 
struct  formatter< string32_ptr >
 
struct  formatter< string_ptr >
 
struct  formatter< styled_str_view >
 
struct  formatter< T *, std::enable_if_t<!std::is_same_v< T, const char > &&!std::is_same_v< T, char > > >
 
struct  formatter< T, std::enable_if_t< detail::is_described_struct< T >::value > >
 
struct  formatter< T, std::enable_if_t< detail::is_tuple_like< T >::value > >
 
struct  formatter< T, std::enable_if_t< is_bintime_v< T > > >
 Formatter for any type satisfying is_bintime_v. More...
 
struct  formatter< T, std::enable_if_t< is_timespec_v< T > > >
 Formatter for struct timespec-like types (tv_sec, tv_nsec). More...
 
struct  formatter< T, std::enable_if_t< is_timeval_v< T > > >
 Formatter for struct timeval-like types (tv_sec, tv_usec). More...
 
struct  formatter< T, std::enable_if_t< std::is_base_of_v< std::exception, T > > >
 
struct  formatter< T, std::enable_if_t< std::is_integral_v< T > &&!std::is_same_v< T, bool > &&!std::is_same_v< T, char > > >
 
struct  formatter< task_state >
 
struct  formatter< thread_state >
 
struct  formatter< unit_view< T > >
 
struct  formatter< uuid_view >
 
struct  formatter< value_ptr< T > >
 Formatter for microfmt::value_ptr<T> (a reloco::value_ptr<T> alias). More...
 
struct  formatter< value_ref< T > >
 Formatter for microfmt::value_ref<T> (a reloco::value_ref<T> alias). More...
 
struct  formatter< variant_view< Ts... > >
 Formatter for variant_view. More...
 
struct  formatter< vec3_view< T > >
 
struct  formatter< vec_view< T, N > >
 
struct  fp_unwinder_context
 Context used by a frame-pointer unwinder. More...
 
struct  fp_unwinder_tag
 Tag selecting the frame-pointer unwinder for an ABI. More...
 
class  frame_pointer_iterator
 Forward-only cursor iterating over a stack walk backed by register context. More...
 
class  frame_unwinder
 
class  frame_unwinder< Tag, false >
 
class  frame_unwinder< Tag, true >
 
class  frame_unwinder_ref
 Type-erased, two-word handle to a frame unwinder. More...
 
struct  frame_unwinder_traits
 Static customization point describing a frame unwinder backend. More...
 
struct  frame_unwinder_traits< arm_exidx_unwinder_tag< AbiTraits > >
 Specializes frame_unwinder_traits for the EXIDX unwinder. More...
 
struct  frame_unwinder_traits< chained_unwinder_tag< AbiTraits > >
 
struct  frame_unwinder_traits< microfmt::dwarf_unwinder_tag< AbiTraits, MaxStateStackDepth > >
 Specializes frame_unwinder_traits for DWARF utilizing selective register_context_ref access. More...
 
struct  frame_unwinder_traits< microfmt::fp_unwinder_tag< AbiTraits > >
 
class  hash_view
 Non-owning view that defers a value's hash computation to formatting time. More...
 
struct  hex_view
 Explicitly formats an integer in hexadecimal or binary with customizable prefix, padding width, and case without altering string specifiers. More...
 
struct  hexdump_view
 
class  hybrid_backtrace_view
 Formattable view rendering a hybrid backtrace. More...
 
struct  hybrid_frame
 One frame record produced during hybrid unwinding. More...
 
class  hybrid_stack_unwinder
 Forward-only cursor combining frame-pointer stepping with exception/trap transitions. More...
 
struct  i2c_msg_view
 Non-owning I2C transfer descriptor for formatting. More...
 
struct  is_bintime
 Customization point trait detecting FreeBSD-style binary time types. More...
 
class  itanium_demangler
 Zero-allocation Itanium (GCC/Clang) name demangler. More...
 
class  iterator_sink
 Output sink adapter for arbitrary output iterators or raw pointers. More...
 
struct  join_view
 
struct  joined_span_view
 Formats a contiguous array/span of values separated by a custom delimiter. Example: join(span, ", ") -> 0x10, 0x20, 0x30 More...
 
class  limit_sink
 
struct  linear_dependent_value_scanner_tag
 
struct  linear_memory_scanner_context
 State retained by the standard linear memory scanner. More...
 
struct  linear_memory_scanner_tag
 Tag identifying the standard linear, sliding-window memory scanner. More...
 
struct  linear_value_range_scanner_tag
 
struct  local_space_tag
 Static customization point describing a remote address space. More...
 
struct  mac_view
 
struct  map_range_view
 
struct  matrix_view
 
class  memory_buffer
 A dynamically growing buffer with inline stack storage. More...
 
class  memory_classifier
 
class  memory_classifier< Tag, false >
 
class  memory_classifier< Tag, true >
 
class  memory_classifier_ref
 Type-erased, two-word handle for classifying memory regions and addresses. More...
 
struct  memory_classifier_traits
 Static customization point describing a memory classifier backend. More...
 
struct  memory_diff_view
 Non-owning view representing a byte-level comparison between two memory regions. More...
 
class  memory_pattern_scanner
 
class  memory_pattern_scanner< Tag, false >
 Typed wrapper owning the stateful context for a memory pattern scanner. More...
 
class  memory_pattern_scanner< Tag, true >
 Typed wrapper for a stateless memory pattern scanner. More...
 
class  memory_pattern_scanner_ref
 Type-erased, zero-allocation handle to a memory pattern scanner. More...
 
struct  memory_pattern_scanner_traits
 Static customization point for memory pattern scanners. More...
 
struct  memory_pattern_scanner_traits< linear_memory_scanner_tag >
 Implementation of the memory pattern scanning logic. More...
 
struct  memory_range_view
 Formats an address range: [0x10000000..0x10004000] (16 KiB) More...
 
struct  memory_region_info
 Detailed description of a classified memory region or address. More...
 
struct  memory_scan_result
 Result of a memory pattern scan operation. More...
 
class  memory_scanner
 Utility scanner for inspecting, classifying, and conditionally hex-dumping memory addresses. More...
 
struct  memory_scanner_context
 Caller-owned reusable storage for memory scanning. More...
 
struct  memory_scanner_options
 Optional memory-scanner behavior and caller-owned symbol storage. More...
 
class  metadata_map
 Type-erased, non-owning metadata map view driven by a sequential next callback. More...
 
class  multi_elf_registry_context
 Fixed-capacity, zero-allocation registry of ELF images. More...
 
struct  multi_elf_registry_tag
 
class  null_sink
 Null/Discard sink that discards all formatted output. More...
 
struct  null_sink_provider_tag
 Tag for a stateless sink that discards every write. More...
 
class  pl011_sink
 Zero-allocation controller targeting the ARM PrimeCell PL011 UART. More...
 
struct  posix_errno
 
class  prefix_sink
 
struct  property_entry
 Type-erased property entry synthesized during generation. More...
 
struct  raw_ptr_view
 
struct  raw_range_view
 
struct  raw_resolved_symbol
 Raw resolution result as returned by a resolver backend. More...
 
struct  read_only_register_context_tag
 
struct  read_write_register_context_tag
 
struct  reg_descriptor
 Static register descriptor listing its bitfields. More...
 
struct  reg_field
 Describes a single bitfield within a register. More...
 
struct  reg_grid_desc
 Static descriptor naming N register entries within a grid. More...
 
struct  reg_grid_type_tag
 Empty tag used to drive CTAD for reg_grid_desc. More...
 
struct  reg_grid_view
 Non-owning view pairing register values with their static descriptor. More...
 
struct  reg_view
 Non-owning view pairing a register value with its static descriptor. More...
 
struct  register_callback_field
 Compile-time register field queried through typed callbacks. More...
 
class  register_context
 Typed owner for a register-context traits specialization. More...
 
class  register_context_ref
 Zero-allocation, type-erased handle for inspecting and modifying CPU registers from a frame context. More...
 
class  register_context_ref_with
 Typed owner that exposes a C/C++ register structure as a register_context_ref. More...
 
struct  register_context_traits
 Static customization point for a register-context provider. More...
 
struct  register_context_traits< detail::mapped_register_context_tag< State, FieldTraits... > >
 
struct  register_context_traits< empty_register_context_tag< State > >
 
struct  register_context_traits< read_only_register_context_tag< State, Read > >
 
struct  register_context_traits< read_write_register_context_tag< State, Read, Write > >
 
struct  register_context_traits< write_only_register_context_tag< State, Write > >
 
class  register_context_view
 Formattable view wrapping a register_context_ref for a specific architecture ABI. More...
 
struct  register_member_field
 Compile-time register-field trait backed by a pointer to member. More...
 
struct  register_selected_field
 Compile-time field trait with state-dependent member selection. More...
 
class  remote_backtrace_view
 Formattable view rendering a remote backtrace. More...
 
struct  remote_basic_string_traits
 Factories for common remote C++ string object layouts. More...
 
class  remote_basic_string_view
 Length-aware view over a remote C++ string object. More...
 
struct  remote_binary_tree_traits
 Static customization point for a remote binary tree. More...
 
struct  remote_binary_tree_traits< detail::binary_tree_layout_tag< Key, Value, RemotePtr > >
 
class  remote_container_view
 General type-erased view over any remote container or data structure. Manages its own formatting options directly. More...
 
class  remote_diag_ref
 Lazily-loaded remote object reference with diagnostics support. More...
 
struct  remote_field_desc
 Static descriptor for a single field in a remote structure layout. More...
 
struct  remote_field_traits
 Default field formatter policy. Can be specialized or overloaded for custom remote types, smart pointers, etc. More...
 
struct  remote_field_traits< remote_intrusive_ptr< T, RefCountOffset, RemotePtr, RemoteRefCount > >
 
struct  remote_field_traits< remote_shared_ptr< T, RemotePtr, RemoteRefCount > >
 
struct  remote_field_traits< remote_unique_ptr< T, RemotePtr > >
 
struct  remote_field_traits< string32_ptr >
 
struct  remote_field_traits< string_ptr >
 
class  remote_fn_ptr
 Symbolic view of a remote function / code pointer. More...
 
struct  remote_forward_list_traits
 Static customization point for a remote forward-list implementation. More...
 
struct  remote_forward_list_traits< detail::forward_list_layout_tag< T, RemotePtr > >
 
struct  remote_hash_table_traits
 Static customization point for a remote chained hash table. More...
 
struct  remote_hash_table_traits< detail::hash_table_layout_tag< Key, Value, RemotePtr, RemoteSize > >
 
class  remote_intrusive_ptr
 Layout wrapper for a remote intrusive pointer. More...
 
class  remote_intrusive_ptr_view
 Formattable view over an intrusive pointer with an embedded count. More...
 
class  remote_layout_accessor
 Reads a remote layout property through a retained callback. More...
 
class  remote_layout_accessor< Value, remote_layout_offset< Stored > >
 Reads a remote layout property from a typed fixed offset. More...
 
struct  remote_layout_offset
 Describes a property stored at a fixed offset in a remote object. More...
 
class  remote_layout_query
 Uniform query wrapper around callback and typed-offset accessors. More...
 
struct  remote_memory_diff_view
 Non-owning view representing a byte-level comparison between two remote address spaces. More...
 
struct  remote_object_traits
 Traits customization point for remote object metadata. More...
 
class  remote_object_view
 
struct  remote_page_table_callbacks
 Callback table describing an architecture's page-table format. More...
 
struct  remote_page_table_decoded_entry
 Architecture callback output for one decoded entry. More...
 
class  remote_page_table_layout_ref
 Borrowed architecture layout used by a remote page-table walker. More...
 
struct  remote_page_table_level
 Address-index and entry-width description for one table level. More...
 
struct  remote_page_table_walk_result
 Final virtual-to-physical result from a remote page-table walk. More...
 
struct  remote_page_table_walk_step
 One recorded level from a remote page-table walk. More...
 
class  remote_page_table_walk_trace
 Caller-owned bounded storage for page-table walk diagnostics. More...
 
class  remote_page_table_walker
 Bounded remote page-table walker using physical memory access. More...
 
class  remote_ref
 Lazily-loaded reference to a trivially-copyable remote object. More...
 
class  remote_shared_ptr
 Layout wrapper for a remote shared pointer. More...
 
class  remote_shared_ptr_view
 Formattable view over a shared pointer and its remote control block. More...
 
class  remote_string_view
 Streaming view of a remote NUL-terminated string. More...
 
class  remote_symbol_view
 Formattable view resolving and rendering a remote code address. More...
 
class  remote_trap_view
 Formattable summary view of a trap context. More...
 
class  remote_unique_ptr
 Layout wrapper for a remote unique pointer. More...
 
class  remote_unique_ptr_view
 Formattable view over a unique pointer stored in a remote process. More...
 
struct  remote_vector_traits
 Static customization point for a remote vector implementation. More...
 
struct  remote_vector_traits< detail::carray_layout_tag< T > >
 
struct  remote_vector_traits< detail::vector_layout_tag< T, RemotePtr, RemoteSize > >
 
struct  repeated_view
 
struct  resolved_symbol_info
 Derived symbol info with precomputed relative offsets. More...
 
class  ring_buffer_sink
 
struct  riscv32_abi_traits
 DWARF unwind ABI traits for RISC-V 32-bit (RV32). More...
 
struct  riscv64_abi_traits
 DWARF unwind ABI traits for RISC-V 64-bit (RV64). More...
 
struct  sbintime_view
 Non-owning view disambiguating an sbintime_t value from a plain int64_t. More...
 
class  sbuf_sink
 Output sink that writes formatted characters into a FreeBSD-style sbuf. More...
 
class  scratch_allocator
 Zero-allocation bump allocator for scratch buffers. More...
 
class  semihosting_sink
 ARM Semihosting Sink for AArch64 freestanding environments. More...
 
struct  semver
 
class  sink_provider
 Owning wrapper: holds context_type by value, sharing lifetime with the handle obtained from ref. More...
 
class  sink_provider_ref
 Type-erased, two-word handle to a sink backend. More...
 
struct  sink_provider_traits
 Static customization point describing a sink backend. More...
 
struct  sink_provider_traits< null_sink_provider_tag >
 
struct  sink_provider_traits< span_sink_provider_tag >
 
class  span_sink
 Output sink that writes formatted characters into a fixed-size contiguous memory buffer. More...
 
struct  span_sink_provider_context
 
struct  span_sink_provider_tag
 Tag for a stateful sink that appends into a fixed-size microfmt::span of character storage, truncating writes that exceed its remaining capacity. More...
 
struct  spi_transfer_view
 Non-owning simplex or full-duplex SPI transfer descriptor. More...
 
struct  stack_frame
 One frame record produced during stack unwinding. More...
 
struct  string_chunk
 
class  string_ptr
 64-bit/Native remote string pointer wrapper. More...
 
struct  styled_str_view
 
struct  symbol_resolution_context
 Caller-owned temporary storage for one symbol resolution. More...
 
class  symbol_resolver
 
class  symbol_resolver< Tag, false >
 
class  symbol_resolver< Tag, true >
 
class  symbol_resolver_ref
 Type-erased, two-word handle to a symbol resolver. More...
 
struct  symbol_resolver_traits
 Static customization point for symbol resolver backends. More...
 
struct  symbol_resolver_traits< dl_symbol_resolver_tag >
 Traits binding dl_symbol_resolver_tag to dladdr-based symbol resolution. More...
 
struct  task_info
 Comprehensive system task (Team) descriptor. More...
 
class  tee_sink
 
struct  thread_info
 Thread descriptor containing thread-specific attributes and CPU register context access. More...
 
class  transform_sink
 
struct  translation_attributes
 Attributes and physical mapping details resolved for a virtual address. More...
 
struct  trap_context
 Normalized, architecture-independent snapshot of a trap context. More...
 
struct  type_tag
 
struct  unit_view
 
struct  unwind_hint
 PC-range descriptor for direct, layout-based fallback unwinding. More...
 
class  unwind_hint_registry
 Typed owner for an unwind-hint registry traits specialization. More...
 
class  unwind_hint_registry_context
 Zero-allocation hint registry with fixed capacity. More...
 
class  unwind_hint_registry_ref
 Type-erased, two-word handle to an unwind hint registry. More...
 
struct  unwind_hint_registry_traits
 
struct  unwind_hint_registry_traits< fixed_unwind_hint_registry_tag< MaxHints > >
 Tag selecting the hint registry in the type-erased handle. More...
 
struct  uuid_view
 
struct  validate_abi_traits
 
class  value_range_scanner
 Typed wrapper owning the context for a value range scanner. More...
 
class  value_range_scanner< Tag, T, false >
 
class  value_range_scanner< Tag, T, true >
 
class  value_range_scanner_ref
 Type-erased reference for scanning memory for a scalar value within a [min, max] range. More...
 
struct  value_range_scanner_traits
 Static customization point for scanning memory for a scalar within a specific range. More...
 
struct  value_range_scanner_traits< linear_value_range_scanner_tag< T >, T >
 
class  variant_view
 Non-owning view over a std::variant with optional decorations. More...
 
struct  vec3_view
 
struct  vec_view
 
struct  write_only_register_context_tag
 
struct  x86_64_abi_traits
 DWARF unwind ABI traits for x86-64 (AMD64 / x86_64). More...
 
struct  x86_abi_traits
 DWARF unwind ABI traits for x86 (32-bit IA-32). More...
 

Typedefs

template<typename IntType = int32_t>
using milli_view = fixed_point_view< 1000, 3, IntType >
 
template<typename IntType = int32_t>
using centi_view = fixed_point_view< 100, 2, IntType >
 
template<typename IntType = int32_t>
using micro_view = fixed_point_view< 1000000, 6, IntType >
 
using memory_reader_fn_t = size_t(*)(void *ctx, uintptr_t src_addr, uint8_t *dst_buf, size_t max_len) noexcept
 Function signature for a safe/probed memory reader.
 
using dependent_predicate_fn = bool(*)(const void *window_bytes, void *user_context) noexcept
 Function pointer type for evaluating a logical predicate over a memory window.
 
using property_print_fn_t = void(*)(const void *val_ptr, const sink &out) noexcept
 Function pointer signature for type-erased property value formatting.
 
using metadata_next_fn_t = bool(*)(void *ctx, property_entry &out) noexcept
 Function pointer signature for fetching the next property entry.
 
template<typename Tag >
using remote_binary_tree = basic_remote_container< Tag, detail::remote_binary_tree_dispatch< Tag > >
 
template<typename Tag >
using remote_forward_list = basic_remote_container< Tag, detail::remote_forward_list_dispatch< Tag > >
 
template<typename Tag >
using remote_hash_table = basic_remote_container< Tag, detail::remote_hash_table_dispatch< Tag > >
 
using remote_field_format_fn = void(*)(address_space_ref space, const void *field_ptr, span< char > work_buf, const sink &out) noexcept
 Type-erased function pointer for formatting a single remote object field from a loaded local struct buffer.
 
template<typename Tag >
using remote_vector = basic_remote_container< Tag, detail::remote_vector_dispatch< Tag > >
 
using thread_next_fn_t = bool(*)(void *ctx, thread_info &out) noexcept
 Function pointer signature for generating/iterating threads belonging to a task.
 
using unwind_hint_registry_tag = fixed_unwind_hint_registry_tag< 32 >
 
using sink = reloco::sink
 Type-erased, zero-allocation output sink.
 
using format_fn_t = void(*)(const void *val_ptr, microfmt::string_view spec, const sink &out) noexcept
 

Enumerations

enum class  time_precision : uint8_t {
  sec = 0 , ms = 3 , us = 6 , ns = 9 ,
  ps = 12
}
 Fractional-second precision selectors for time formatting. More...
 
enum class  bit_type : uint8_t { flag , value_hex , value_dec }
 
enum class  can_flags : uint8_t {
  none = 0 , extended = 1 << 0 , rtr = 1 << 1 , fd = 1 << 2 ,
  brs = 1 << 3 , esi = 1 << 4
}
 
enum class  align_mode : uint8_t { left , right , center }
 
enum class  i2c_dir : uint8_t { write = 0 , read = 1 }
 
enum class  i2c_status : uint8_t {
  ok = 0 , nack_addr , nack_data , arb_lost ,
  timeout
}
 
enum class  ptr_width_mode : uint8_t { native = 0 , compat32 , compat64 }
 
enum class  spi_mode : uint8_t { mode0 = 0 , mode1 = 1 , mode2 = 2 , mode3 = 3 }
 
enum class  spi_status : uint8_t { ok = 0 , timeout , crc_err , overrun }
 
enum class  text_case : uint8_t { none = 0 , upper , lower , title }
 
enum class  text_align : uint8_t { left = 0 , center , right }
 
enum class  quote_style : uint8_t {
  none = 0 , double_quotes , single_quotes , brackets ,
  parens , angle_brackets
}
 
enum class  scale_base : uint16_t { decimal = 1000 , binary = 1024 }
 
enum class  address_space_error {
  invalid_handle , invalid_address , invalid_buffer , empty_buffer ,
  read_failed , write_unsupported , write_failed
}
 
enum class  remote_load_error {
  null_address , scratch_too_small , scratch_misaligned , invalid_address_space ,
  read_failed
}
 
enum class  frame_kind : uint8_t { standard = 0 , trap_transition }
 Classifies a hybrid_frame as either a normal stack frame or a trap transition. More...
 
enum class  memory_region_type : uint8_t {
  unknown = 0 , kernel_code , kernel_data , kernel_stack ,
  process_stack , direct_map , struct_pages , kernel_heap ,
  user_code , user_data , device_mmio , guard_page ,
  ns_map , ns_device_mmio
}
 Enumeration of classified memory region types. More...
 
enum class  remote_page_table_entry_kind : uint8_t { invalid , next_table , leaf }
 Meaning assigned to a decoded page-table entry. More...
 
enum class  remote_page_table_walk_error : uint8_t {
  invalid_physical_space , invalid_layout , invalid_root , invalid_level ,
  unsupported_entry_size , address_overflow , read_failed , decode_failed ,
  invalid_entry , unexpected_next_table , invalid_leaf
}
 Errors produced while walking remote page tables. More...
 
enum class  task_state : uint8_t {
  ready , running , suspended , waiting ,
  terminated
}
 
enum class  thread_state : uint8_t {
  ready , running , suspended , waiting ,
  sleeping , terminated
}
 Detailed execution state of an individual thread. More...
 
enum class  char_transform : uint8_t { none = 0 , to_upper , to_lower , sanitize_ascii }
 

Functions

constexpr base64_view base64 (span< const uint8_t > bytes) noexcept
 
template<size_t N>
constexpr base64_view base64 (const uint8_t(&arr)[N]) noexcept
 
template<typename T , std::enable_if_t< std::is_integral_v< T > &&!std::is_same_v< T, bool >, int > = 0>
constexpr auto bin_grouped (T val, uint8_t group, char sep='_') noexcept
 
template<typename T , std::enable_if_t< std::is_integral_v< T > &&!std::is_same_v< T, bool >, int > = 0>
constexpr auto bin (T val) noexcept
 
template<uint8_t Bits, typename T , std::enable_if_t< std::is_integral_v< T > &&!std::is_same_v< T, bool >, int > = 0>
constexpr auto bin (T val) noexcept
 
template<typename T , std::enable_if_t< std::is_integral_v< T > &&!std::is_same_v< T, bool >, int > = 0>
constexpr auto bin_prefixed (T val, bool group_nibbles=false) noexcept
 
template<typename T , std::enable_if_t< std::is_integral_v< T > &&!std::is_same_v< T, bool >, int > = 0>
constexpr auto bin_grouped (T val) noexcept
 
template<typename T , typename = std::enable_if_t<std::is_integral_v<T>>>
constexpr auto as_sbintime (T val) noexcept
 Wraps an integral sbintime_t value in an sbintime_view.
 
constexpr bitfield_view bits (uint32_t raw_val, span< const bit_field > fields, bool show_raw_hex=true, microfmt::string_view sep=" | ") noexcept
 
RELOCO_BEGIN_UNSAFE_CODE constexpr can_flags operator| (can_flags a, can_flags b) noexcept
 
RELOCO_END_UNSAFE_CODE constexpr bool operator& (can_flags a, can_flags b) noexcept
 
constexpr can_frame_view can_frame (uint16_t id, span< const uint8_t > payload, bool rtr=false) noexcept
 Creates a standard 11-bit CAN frame view.
 
template<size_t N>
constexpr can_frame_view can_frame (uint16_t id, const uint8_t(&arr)[N], bool rtr=false) noexcept
 
constexpr can_frame_view can_extended (uint32_t id, span< const uint8_t > payload, bool rtr=false) noexcept
 Creates an extended 29-bit CAN frame view.
 
constexpr can_frame_view can_fd (uint32_t id, span< const uint8_t > payload, bool is_extended=false, bool brs=false, bool esi=false) noexcept
 Creates a CAN-FD frame view with optional extended, BRS, and ESI flags.
 
constexpr posix_errno format_errno (int val) noexcept
 
posix_errno current_errno () noexcept
 
constexpr escaped_view escaped (microfmt::string_view sv, bool quote=true, bool escape_quotes=true) noexcept
 
RELOCO_BEGIN_UNSAFE_CODE constexpr escaped_view escaped (const char *str, size_t len, bool quote=true, bool escape_quotes=true) noexcept
 
RELOCO_END_UNSAFE_CODE RELOCO_BEGIN_UNSAFE_CODE escaped_view escaped (span< const uint8_t > bytes, bool quote=true, bool escape_quotes=true) noexcept
 
template<size_t N>
RELOCO_END_UNSAFE_CODE constexpr escaped_view escaped (const char(&arr)[N], bool quote=true, bool escape_quotes=true) noexcept
 
template<size_t N>
RELOCO_BEGIN_UNSAFE_CODE constexpr escaped_view escaped (const uint8_t(&arr)[N], bool quote=true, bool escape_quotes=true) noexcept
 
template<typename Range , typename Predicate >
constexpr auto filter (const Range &rng, Predicate &&pred) noexcept
 
template<typename Range , typename Predicate , std::enable_if_t<!std::is_lvalue_reference_v< Range >, int > = 0>
constexpr auto filter (Range &&, Predicate &&) noexcept=delete
 
template<typename T , typename Predicate >
constexpr auto filter (const T *ptr, size_t count, Predicate &&pred) noexcept
 
template<uint64_t Scale, uint8_t Decimals = 2, typename IntType >
constexpr auto fixed (IntType raw_val) noexcept
 
template<typename IntType >
constexpr auto milli (IntType raw_val) noexcept
 
template<typename IntType >
constexpr auto centi (IntType raw_val) noexcept
 
template<typename IntType >
constexpr auto micro (IntType raw_val) noexcept
 
template<typename T >
constexpr hex_view< T > hex (T val, int width=0, bool prefix=false, bool uppercase=false) noexcept
 
template<typename T >
constexpr bin_view< T > bin (T val, int width=sizeof(T) *8, bool prefix=false) noexcept
 
constexpr bytes_view bytes (uint64_t count) noexcept
 
constexpr addr_offset_view addr_offset (uintptr_t addr, uintptr_t base) noexcept
 
constexpr memory_range_view mem_range (uintptr_t start, uintptr_t end) noexcept
 
constexpr aligned_text_view align (microfmt::string_view text, size_t width, align_mode mode=align_mode::left, char pad_char=' ') noexcept
 
template<typename T >
constexpr joined_span_view< T > join (span< const T > items, microfmt::string_view delim=", ") noexcept
 
template<typename WordType , typename... Names>
 reg_grid_desc (reg_grid_type_tag< WordType >, microfmt::string_view, uint8_t, Names...) -> reg_grid_desc< WordType, sizeof...(Names)>
 Deduction guide deriving the entry count for reg_grid_desc.
 
template<typename StructOrArray , typename WordType , size_t N>
RELOCO_BEGIN_UNSAFE_CODE constexpr auto make_reg_grid (const StructOrArray &data, const reg_grid_desc< WordType, N > &desc) noexcept
 Builds a reg_grid_view over an array/struct of register data.
 
template<typename T , std::enable_if_t< detail::is_hashable_v< T >, int > = 0>
constexpr auto as_hash (const T &val RELOCO_LIFETIMEBOUND) noexcept
 Wraps a value in an hash_view for hashed formatting.
 
template<typename T , std::enable_if_t< !std::is_lvalue_reference_v< T > &&detail::is_hashable_v< std::remove_reference_t< T > >, int > = 0>
constexpr auto as_hash (T &&) noexcept=delete
 
constexpr hexdump_view hexdump (span< const uint8_t > data, uintptr_t base_addr=0, uint8_t bytes_per_line=16, bool show_ascii=true) noexcept
 Helper for dumping safe, direct in-memory buffers (zero overhead).
 
RELOCO_BEGIN_UNSAFE_CODE constexpr hexdump_view hexdump_checked (uintptr_t base_addr, size_t total_len, memory_reader_fn_t reader, void *ctx=nullptr, uint8_t bytes_per_line=16, bool show_ascii=true) noexcept
 Helper for dumping memory via a fault-checked accessor probe.
 
RELOCO_END_UNSAFE_CODE MICROFMT_API void format_hexdump (const hexdump_view &h, span< uint8_t > line_buffer, const sink &out) noexcept
 Formats a hex dump using caller-provided line storage.
 
void hexdump_to (const sink &out, span< const uint8_t > data, uintptr_t base_address=0) noexcept
 
RELOCO_BEGIN_UNSAFE_CODE constexpr i2c_flags operator| (i2c_flags a, i2c_flags b) noexcept
 
RELOCO_END_UNSAFE_CODE constexpr bool operator& (i2c_flags a, i2c_flags b) noexcept
 
constexpr i2c_msg_view i2c_write (uint8_t addr_7bit, span< const uint8_t > data, i2c_status status=i2c_status::ok) noexcept
 Creates a 7-bit I2C write transaction view.
 
template<size_t N>
constexpr i2c_msg_view i2c_write (uint8_t addr_7bit, const uint8_t(&arr)[N], i2c_status status=i2c_status::ok) noexcept
 
constexpr i2c_msg_view i2c_read (uint8_t addr_7bit, span< const uint8_t > data, i2c_status status=i2c_status::ok) noexcept
 Creates a 7-bit I2C read transaction view.
 
template<size_t N>
constexpr i2c_msg_view i2c_read (uint8_t addr_7bit, const uint8_t(&arr)[N], i2c_status status=i2c_status::ok) noexcept
 
constexpr i2c_msg_view i2c_10bit (uint16_t addr_10bit, i2c_dir dir, span< const uint8_t > data, i2c_status status=i2c_status::ok) noexcept
 Creates a 10-bit I2C read or write transaction view.
 
template<typename MapContainer >
constexpr auto map_view (const MapContainer &m) noexcept
 
template<typename MapContainer , std::enable_if_t<!std::is_lvalue_reference_v< MapContainer >, int > = 0>
constexpr auto map_view (MapContainer &&) noexcept=delete
 
template<typename MapContainer , typename KeyFn , typename ValFn >
constexpr auto map_view (const MapContainer &m, KeyFn &&kfn, ValFn &&vfn) noexcept
 
template<typename MapContainer , typename KeyFn , typename ValFn , std::enable_if_t<!std::is_lvalue_reference_v< MapContainer >, int > = 0>
constexpr auto map_view (MapContainer &&, KeyFn &&, ValFn &&) noexcept=delete
 
template<typename Iterator , typename Sentinel , typename KeyFn = default_key_fn, typename ValFn = default_val_fn, typename std::enable_if< detail::is_dereferenceable< Iterator >::value, int >::type = 0>
constexpr auto map_view (Iterator first, Sentinel last, KeyFn &&kfn=KeyFn{}, ValFn &&vfn=ValFn{}) noexcept
 
template<typename T , size_t N>
constexpr auto vec (const T(&arr)[N]) noexcept
 
template<typename T >
constexpr auto vec3 (const T &x, const T &y, const T &z) noexcept
 
template<typename T , size_t Rows, size_t Cols>
constexpr auto mat (const T(&arr)[Rows *Cols]) noexcept
 
constexpr mac_view mac (span< const uint8_t > bytes, char separator=':', bool uppercase=false) noexcept
 
constexpr mac_view mac (const uint8_t(&arr)[6], char separator=':', bool uppercase=false) noexcept
 
constexpr mac_view mac (const uint8_t(&arr)[8], char separator=':', bool uppercase=false) noexcept
 
template<typename ContainerT , std::enable_if_t< detail::is_mac_container< ContainerT >::value, int > = 0>
constexpr mac_view mac (const ContainerT &c, char separator=':', bool uppercase=false) noexcept
 
template<typename ContainerT , std::enable_if_t<!std::is_lvalue_reference_v< ContainerT > &&detail::is_mac_container< std::remove_reference_t< ContainerT > >::value, int > = 0>
constexpr mac_view mac (ContainerT &&, char=':', bool=false) noexcept=delete
 
template<typename T >
RELOCO_BEGIN_UNSAFE_CODE constexpr raw_ptr_view raw_ptr (const T *ptr, ptr_width_mode mode=ptr_width_mode::native) noexcept
 
RELOCO_END_UNSAFE_CODE constexpr raw_ptr_view raw_ptr (std::nullptr_t, ptr_width_mode mode=ptr_width_mode::native) noexcept
 
constexpr raw_ptr_view raw_ptr (uintptr_t addr, ptr_width_mode mode=ptr_width_mode::native) noexcept
 
template<typename T >
constexpr raw_ptr_view raw_ptr32 (const T *ptr) noexcept
 
constexpr raw_ptr_view raw_ptr32 (std::nullptr_t) noexcept
 
constexpr raw_ptr_view raw_ptr32 (uintptr_t addr) noexcept
 
template<typename T >
constexpr raw_range_view< T > raw_range (const T *first, const T *last) noexcept
 
template<typename T >
constexpr raw_range_view< T > raw_range (const T *first, size_t count) noexcept
 
template<typename It , typename Sentinel , std::enable_if_t<!std::is_convertible_v< Sentinel, microfmt::string_view >, int > = 0>
constexpr auto join (It first, Sentinel last, microfmt::string_view delimiter=", ") noexcept
 
template<typename Range , std::enable_if_t< detail::is_range< Range >::value, int > = 0>
constexpr auto join (const Range &range, microfmt::string_view delimiter=", ") noexcept
 
template<typename Range , std::enable_if_t< !std::is_lvalue_reference_v< Range > &&detail::is_range< std::remove_reference_t< Range > >::value, int > = 0>
constexpr auto join (Range &&, microfmt::string_view=", ") noexcept=delete
 
template<typename... Fields>
 reg_descriptor (microfmt::string_view, size_t, Fields...) -> reg_descriptor< sizeof...(Fields)>
 Deduction guide deriving the field count for reg_descriptor.
 
template<size_t N, typename UInt >
constexpr auto format_reg (UInt val, const reg_descriptor< N > &desc) noexcept
 Builds a reg_view from a register value and its descriptor.
 
template<typename Container , std::enable_if_t< reloco::detail::has_collection_view_traits< std::remove_const_t< Container > >::value, int > = 0>
constexpr auto as_collection_view (Container &c) noexcept
 
 MICROFMT_RELOCO_RING_FORMATTER (template< typename T >, reloco::ring_buffer< T >)
 
 MICROFMT_RELOCO_RING_FORMATTER (template< typename T >, reloco::outline_ring_buffer< T >)
 
 MICROFMT_RELOCO_RING_FORMATTER (template< typename T >, reloco::ring_buffer_ref< T >)
 
 MICROFMT_RELOCO_RING_FORMATTER (template< typename T MICROFMT_COMMA std::size_t N >, reloco::inline_ring_buffer< T MICROFMT_COMMA N >)
 
 MICROFMT_RELOCO_RING_FORMATTER (template< typename T MICROFMT_COMMA std::size_t N >, reloco::sso_ring_buffer< T MICROFMT_COMMA N >)
 
template<typename T >
constexpr auto repeat (T value, size_t count) noexcept
 
template<typename T >
constexpr auto repeat (T value, size_t count, microfmt::string_view separator) noexcept
 
constexpr semver version (uint16_t major, uint16_t minor, uint16_t patch, microfmt::string_view prerelease="", microfmt::string_view build="", bool show_v=false) noexcept
 
constexpr semver from_packed32 (uint32_t packed, bool show_v=false) noexcept
 
constexpr semver from_packed24 (uint32_t packed, bool show_v=false) noexcept
 
constexpr spi_transfer_view spi_duplex (span< const uint8_t > mosi, span< const uint8_t > miso, uint8_t cs=0, spi_mode mode=spi_mode::mode0, spi_status status=spi_status::ok) noexcept
 Creates a full-duplex SPI transfer view.
 
template<size_t N1, size_t N2>
constexpr spi_transfer_view spi_duplex (const uint8_t(&mosi)[N1], const uint8_t(&miso)[N2], uint8_t cs=0, spi_mode mode=spi_mode::mode0, spi_status status=spi_status::ok) noexcept
 
constexpr spi_transfer_view spi_write (span< const uint8_t > mosi, uint8_t cs=0, spi_mode mode=spi_mode::mode0, spi_status status=spi_status::ok) noexcept
 Creates a write-only SPI transfer view.
 
template<size_t N>
constexpr spi_transfer_view spi_write (const uint8_t(&mosi)[N], uint8_t cs=0, spi_mode mode=spi_mode::mode0, spi_status status=spi_status::ok) noexcept
 
constexpr spi_transfer_view spi_read (span< const uint8_t > miso, uint8_t cs=0, spi_mode mode=spi_mode::mode0, spi_status status=spi_status::ok) noexcept
 Creates a read-only SPI transfer view.
 
template<size_t N>
constexpr spi_transfer_view spi_read (const uint8_t(&miso)[N], uint8_t cs=0, spi_mode mode=spi_mode::mode0, spi_status status=spi_status::ok) noexcept
 
constexpr as_string_view as_string (microfmt::string_view sv) noexcept
 Wraps a string_view for advanced string formatting.
 
template<typename CharT , typename Traits , typename Alloc >
as_string_view as_string (const std::basic_string< CharT, Traits, Alloc > &str) noexcept
 Wraps a std::basic_string for advanced string formatting.
 
template<typename CharT , typename Traits , typename Alloc >
as_string_view as_string (std::basic_string< CharT, Traits, Alloc > &&) noexcept=delete
 
RELOCO_BEGIN_UNSAFE_CODE constexpr as_string_view as_string (const char *str) noexcept
 Wraps a null-terminated C string for advanced string formatting.
 
constexpr styled_str_view pad (microfmt::string_view s, size_t width, text_align a=text_align::left, char fill=' ') noexcept
 
constexpr styled_str_view pad_center (microfmt::string_view s, size_t width, char fill=' ') noexcept
 
constexpr styled_str_view pad_right (microfmt::string_view s, size_t width, char fill=' ') noexcept
 
constexpr styled_str_view to_upper (microfmt::string_view s) noexcept
 
constexpr styled_str_view to_lower (microfmt::string_view s) noexcept
 
constexpr styled_str_view truncate (microfmt::string_view s, size_t max_chars, bool use_ellipsis=true) noexcept
 
constexpr styled_str_view quoted (microfmt::string_view s, quote_style q=quote_style::double_quotes) noexcept
 
template<typename T , std::enable_if_t< std::is_integral_v< T >, int > = 0>
constexpr auto auto_si (T val, microfmt::string_view unit, uint8_t precision=2) noexcept
 
template<typename T , std::enable_if_t< std::is_integral_v< T >, int > = 0>
constexpr auto auto_bytes (T bytes, uint8_t precision=2) noexcept
 
template<typename T >
constexpr auto with_unit (T val, microfmt::string_view unit) noexcept
 
template<typename T , std::enable_if_t< std::is_integral_v< T >, int > = 0>
constexpr auto hertz (T hz, uint8_t precision=2) noexcept
 
constexpr uuid_view uuid (span< const uint8_t > b, bool uppercase=false, bool braced=false) noexcept
 
constexpr uuid_view uuid (const uint8_t(&arr)[16], bool uppercase=false, bool braced=false) noexcept
 
template<typename ArrayT , std::enable_if_t< detail::is_uuid_container< ArrayT >::value, int > = 0>
constexpr uuid_view uuid (const ArrayT &arr, bool uppercase=false, bool braced=false) noexcept
 
template<typename ArrayT , std::enable_if_t<!std::is_lvalue_reference_v< ArrayT > &&detail::is_uuid_container< std::remove_reference_t< ArrayT > >::value, int > = 0>
constexpr uuid_view uuid (ArrayT &&, bool=false, bool=false) noexcept=delete
 
template<typename... Ts>
constexpr auto as_variant (const std::variant< Ts... > &var RELOCO_LIFETIMEBOUND) noexcept
 Wraps a variant for plain formatting.
 
template<typename... Ts>
constexpr auto as_variant (std::variant< Ts... > &&) noexcept=delete
 
template<typename... Ts>
constexpr auto as_variant (const std::variant< Ts... > &&) noexcept=delete
 
template<typename... Ts>
constexpr auto as_variant (const std::variant< Ts... > &var RELOCO_LIFETIMEBOUND, microfmt::string_view prefix, microfmt::string_view suffix) noexcept
 Wraps a variant with custom prefix/suffix decorations.
 
template<typename... Ts>
constexpr auto as_variant (std::variant< Ts... > &&, microfmt::string_view, microfmt::string_view) noexcept=delete
 
template<typename... Ts>
constexpr auto as_variant (const std::variant< Ts... > &&, microfmt::string_view, microfmt::string_view) noexcept=delete
 
template<typename... Ts>
constexpr auto as_debug_variant (const std::variant< Ts... > &var RELOCO_LIFETIMEBOUND, bool show_index=false) noexcept
 Wraps a variant for debug output (variant(index, ...)).
 
template<typename... Ts>
constexpr auto as_debug_variant (std::variant< Ts... > &&, bool=false) noexcept=delete
 
template<typename... Ts>
constexpr auto as_debug_variant (const std::variant< Ts... > &&, bool=false) noexcept=delete
 
template<size_t N>
constexpr auto make_remote_string32 (compat32_ptr< const char > ptr, address_space_ref space, char(&scratch)[N], size_t max_limit=4096) noexcept
 Builds a remote_string_view over a 32-bit string pointer.
 
template<typename T , size_t N>
constexpr auto make_remote_ref32 (compat32_ptr< T > ptr, address_space_ref space, std::byte(&scratch)[N]) noexcept
 Builds a remote_ref over a 32-bit object pointer.
 
constexpr auto as_demangled (microfmt::string_view sym) noexcept
 Wraps a symbol for demangled formatting.
 
template<typename AbiTraits >
uint32_t resolve_fp_register (register_context_ref reg_ctx) noexcept
 Resolves the frame-pointer register to use for AbiTraits.
 
template<typename AbiTraits >
bool resolve_frame_slot_offsets (register_context_ref reg_ctx, ptrdiff_t &out_fp_slot_offset, ptrdiff_t &out_ra_slot_offset) noexcept
 Resolves the FP-relative saved-FP/saved-RA slot offsets to use for AbiTraits's naive FP-chain walking (fp_unwinder_tag).
 
template<typename T1 , typename T2 >
RELOCO_BEGIN_UNSAFE_CODE constexpr memory_diff_view mem_diff (span< const T1 > old_span, span< const std::byte > new_span, uintptr_t base_addr=0) noexcept
 Creates a memory diff view over two microfmt::span containers.
 
template<typename T1 , typename T2 >
RELOCO_END_UNSAFE_CODE RELOCO_BEGIN_UNSAFE_CODE constexpr memory_diff_view mem_diff (span< const T1 > old_span, span< const T2 > new_span, uintptr_t base_addr=0) noexcept
 
template<auto Read, typename State >
constexpr register_context_ref make_read_only_register_context_ref (State &state RELOCO_LIFETIMEBOUND, address_space_ref space, span< std::byte > scratch RELOCO_LIFETIMEBOUND) noexcept
 
template<auto Read, auto Write, typename State >
constexpr register_context_ref make_register_context_ref (State &state RELOCO_LIFETIMEBOUND, address_space_ref space, span< std::byte > scratch RELOCO_LIFETIMEBOUND) noexcept
 
template<typename Layout >
constexpr auto make_remote_basic_string_view (uintptr_t object_address, address_space_ref space, span< char > scratch, Layout layout, size_t max_limit=4096) noexcept
 Creates a length-aware remote string view with template deduction.
 
template<typename Layout , size_t N>
constexpr auto make_remote_basic_string_view (uintptr_t object_address, address_space_ref space, char(&scratch)[N], Layout layout, size_t max_limit=4096) noexcept
 
template<typename Tag >
constexpr remote_binary_tree< Tag > make_remote_binary_tree (uintptr_t container_addr, typename remote_binary_tree_traits< Tag >::context_type context) noexcept
 
template<typename Key , typename Value , typename RemotePtr = uintptr_t>
constexpr auto make_remote_binary_tree (uintptr_t container_addr, ptrdiff_t root_offset, ptrdiff_t left_offset, ptrdiff_t right_offset, ptrdiff_t key_offset, ptrdiff_t value_offset) noexcept
 Creates a binary-tree inspector for a conventional offset layout.
 
template<typename IteratorState , typename FormatterFn >
constexpr auto make_container_context (IteratorState initial_state, FormatterFn formatter) noexcept
 Creates an external context for a remote container view.
 
void format_remote_fault (const sink &out, uintptr_t addr, symbol_resolver_ref resolver, symbol_resolution_context &context) noexcept
 Formats a human-readable description of a faulting address.
 
template<typename Tag >
constexpr remote_forward_list< Tag > make_remote_forward_list (uintptr_t container_addr, typename remote_forward_list_traits< Tag >::context_type context) noexcept
 Creates a typed remote forward list with caller-defined traits.
 
template<typename T , typename RemotePtr = uintptr_t>
constexpr auto make_remote_forward_list (uintptr_t container_addr, ptrdiff_t head_offset, ptrdiff_t next_offset, ptrdiff_t data_offset) noexcept
 Creates a forward-list inspector for a conventional offset layout.
 
template<typename Tag >
constexpr remote_hash_table< Tag > make_remote_hash_table (uintptr_t container_addr, typename remote_hash_table_traits< Tag >::context_type context) noexcept
 
template<typename Key , typename Value , typename RemotePtr = uintptr_t, typename RemoteSize = size_t>
constexpr auto make_remote_hash_table (uintptr_t container_addr, ptrdiff_t buckets_ptr_offset, ptrdiff_t bucket_count_offset, ptrdiff_t node_next_offset, ptrdiff_t node_key_offset, ptrdiff_t node_value_offset) noexcept
 Creates a chained-hash-table inspector for a conventional layout.
 
template<typename Value , typename Callback >
constexpr auto make_remote_layout_query (Callback callback) noexcept
 Creates a query backed by a callback retained by value.
 
template<typename Value , typename Stored = Value>
constexpr auto make_remote_offset_query (ptrdiff_t offset) noexcept
 Creates a query backed by a typed remote-object offset.
 
constexpr remote_memory_diff_view remote_mem_diff (address_space_ref old_space, uintptr_t old_addr, address_space_ref new_space, uintptr_t new_addr, size_t size, span< std::byte > scratch_buffer) noexcept
 Creates a remote memory diff view.
 
class MICROFMT_API_CLASS alignas (uint32_t) string32_ptr
 32-bit compatibility string pointer wrapper (for 64-bit hosts).
 
template<typename Tag >
constexpr remote_vector< Tag > make_remote_vector (uintptr_t container_addr, typename remote_vector_traits< Tag >::context_type context) noexcept
 
template<typename T , typename RemotePtr = uintptr_t, typename RemoteSize = size_t>
constexpr auto make_remote_vector (uintptr_t container_addr, ptrdiff_t data_offset, ptrdiff_t size_offset, ptrdiff_t capacity_offset=-1) noexcept
 Creates a vector inspector for a conventional offset layout.
 
template<typename T >
constexpr auto make_remote_carray (uintptr_t array_addr, size_t count) noexcept
 Creates a vector inspector for a fixed-size remote C array.
 
constexpr auto make_remote_symbol (uintptr_t addr, symbol_resolver_ref resolver, symbol_resolution_context &context, bool demangle=true) noexcept
 Convenience factory building a remote_symbol_view.
 
register_context_ref make_ucontext_register_context_ref (const ucontext_t &uctx RELOCO_LIFETIMEBOUND, address_space_ref space, span< std::byte > scratch RELOCO_LIFETIMEBOUND) noexcept
 Creates a read-only, type-erased register_context_ref backed by a POSIX ucontext_t (e.g. a signal handler's third argument).
 
register_context_ref make_mutable_ucontext_register_context_ref (ucontext_t &uctx RELOCO_LIFETIMEBOUND, address_space_ref space, span< std::byte > scratch RELOCO_LIFETIMEBOUND) noexcept
 Creates a mutable, type-erased register_context_ref backed by a POSIX ucontext_t, supporting both register reads and writes.
 
template<typename Callable >
constexpr callback_sink< Callable > make_callback_sink (Callable &fn RELOCO_LIFETIMEBOUND) noexcept
 Helper factory function to construct a callback_sink with template deduction.
 
template<typename T >
constexpr auto as_debug (const T &value RELOCO_LIFETIMEBOUND) noexcept
 Wraps value so it always renders through reloco's Debug<T> customization point when one exists, matching Rust's {:?}.
 
template<typename T , std::enable_if_t<!std::is_lvalue_reference_v< T >, int > = 0>
constexpr auto as_debug (T &&) noexcept=delete
 
MICROFMT_API void vformat_to (const sink &out, const microfmt::string_view fmt, const span< const void *const > arg_ptrs, const span< const format_fn_t > arg_fns) noexcept
 
template<typename... Args>
RELOCO_CONSTEXPR20 void format_to (const sink &out, microfmt::string_view fmt, const Args &...args) noexcept
 
template<typename OutputIt , typename... Args>
RELOCO_CONSTEXPR20 OutputIt format_to (OutputIt it, microfmt::string_view fmt, const Args &...args) noexcept
 
template<size_t N, typename... Args>
RELOCO_CONSTEXPR20 buffer_sink< N > format (microfmt::string_view fmt, const Args &...args) noexcept
 
template<typename StrProvider , typename... Args>
RELOCO_CONSTEXPR20 void format_to (const sink &out, compile_string_holder< StrProvider >, const Args &...args) noexcept
 
template<typename OutputIt , typename StrProvider , typename... Args>
RELOCO_CONSTEXPR20 OutputIt format_to (OutputIt it, compile_string_holder< StrProvider > fmt, const Args &...args) noexcept
 
template<size_t N, typename StrProvider , typename... Args>
RELOCO_CONSTEXPR20 buffer_sink< N > format (compile_string_holder< StrProvider > fmt, const Args &...args) noexcept
 
template<typename TargetContainer , typename... Args>
TargetContainer format_as (string_view fmt, const Args &...args)
 Formats arguments into a newly constructed container (e.g., std::string) using a runtime format string.
 
template<typename TargetContainer , typename StrProvider , typename... Args>
TargetContainer format_as (compile_string_holder< StrProvider > fmt, const Args &...args)
 Formats arguments into a newly constructed container using a compile-time checked format string holder.
 
template<typename... Args>
RELOCO_CONSTEXPR20 auto make_format_args (const Args &...args RELOCO_LIFETIMEBOUND) noexcept
 Captures arguments into a type-erased storage object.
 
void vformat_args_to (const sink &out, microfmt::string_view fmt, format_args args) noexcept
 Type-erased formatting engine entry point.
 
template<typename TargetContainer >
TargetContainer vformat_args_as (microfmt::string_view fmt, format_args args)
 Formats type-erased arguments into a newly constructed container (e.g., std::string).
 
template<typename Container , typename std::enable_if< is_growable_char_container< Container >, int >::type = 0>
constexpr auto make_container_sink (Container &c RELOCO_LIFETIMEBOUND) noexcept
 
template<typename Container , typename... Args>
RELOCO_BEGIN_UNSAFE_CODE std::enable_if< is_growable_char_container< Container >, void >::type format_to_container (Container &dest, microfmt::string_view fmt_str, const Args &...args)
 
template<typename Container = std::string, typename... Args>
RELOCO_END_UNSAFE_CODE std::enable_if< is_growable_char_container< Container >, Container >::type format_as_container (microfmt::string_view fmt_str, const Args &...args)
 
template<typename Container , typename... Args>
std::enable_if< is_growable_char_container< Container > &&std::is_constructible< Container, reloco::allocator_ref >::value, reloco::result< Container > >::type try_format_as_container (reloco::allocator_ref alloc, microfmt::string_view fmt_str, const Args &...args)
 
template<typename Container , typename... Args>
std::enable_if< is_growable_char_container< Container >, reloco::result< void > >::type try_format_to_container (Container &dest, microfmt::string_view fmt_str, const Args &...args)
 
RELOCO_BEGIN_UNSAFE_CODE sink file_sink (std::FILE *file) noexcept
 
RELOCO_END_UNSAFE_CODE sink stdout_sink () noexcept
 
sink stderr_sink () noexcept
 
template<typename StrProvider , typename... Args>
void print (compile_string_holder< StrProvider > fmt, const Args &...args) noexcept
 
template<typename StrProvider , typename... Args>
void println (compile_string_holder< StrProvider > fmt, const Args &...args) noexcept
 
template<typename... Args>
void print (microfmt::string_view fmt_str, const Args &...args) noexcept
 
template<typename... Args>
void println (microfmt::string_view fmt_str, const Args &...args) noexcept
 
template<typename StrProvider , typename... Args>
RELOCO_BEGIN_UNSAFE_CODE void print (std::FILE *file, compile_string_holder< StrProvider > fmt, const Args &...args) noexcept
 
template<typename StrProvider , typename... Args>
RELOCO_END_UNSAFE_CODE RELOCO_BEGIN_UNSAFE_CODE void println (std::FILE *file, compile_string_holder< StrProvider > fmt, const Args &...args) noexcept
 
template<typename... Args>
RELOCO_END_UNSAFE_CODE RELOCO_BEGIN_UNSAFE_CODE void print (std::FILE *file, microfmt::string_view fmt_str, const Args &...args) noexcept
 
template<typename... Args>
RELOCO_END_UNSAFE_CODE RELOCO_BEGIN_UNSAFE_CODE void println (std::FILE *file, microfmt::string_view fmt_str, const Args &...args) noexcept
 
template<typename StrProvider , typename... Args>
RELOCO_END_UNSAFE_CODE void print (sink s, compile_string_holder< StrProvider > fmt, const Args &...args) noexcept
 
template<typename StrProvider , typename... Args>
void println (sink s, compile_string_holder< StrProvider > fmt, const Args &...args) noexcept
 
template<typename... Args>
void print (sink s, microfmt::string_view fmt_str, const Args &...args) noexcept
 
template<typename... Args>
void println (sink s, microfmt::string_view fmt_str, const Args &...args) noexcept
 
void println (sink s) noexcept
 
void println () noexcept
 
RELOCO_BEGIN_UNSAFE_CODE void println (std::FILE *file) noexcept
 
template<typename... Sinks>
constexpr auto make_tee (Sinks... sinks) noexcept
 

Variables

template<typename T >
constexpr bool is_bintime_v = is_bintime<std::remove_cv_t<std::remove_reference_t<T>>>::value
 Convenience variable template for is_bintime.
 
enum RELOCO_FLAG_ENUM i2c_flags
 
enum RELOCO_FLAG_ENUM ten_bit = 1 << 0
 
enum RELOCO_FLAG_ENUM nostart = 1 << 1
 
enum RELOCO_FLAG_ENUM stop
 
template<typename T >
constexpr bool is_timespec_v = detail::is_timespec_like<std::remove_cv_t<std::remove_reference_t<T>>>::value
 Variable template for detail::is_timespec_like.
 
template<typename T >
constexpr bool is_timeval_v = detail::is_timeval_like<std::remove_cv_t<std::remove_reference_t<T>>>::value
 Variable template for detail::is_timeval_like.
 
 RELOCO_END_UNSAFE_CODE
 
template<typename Container >
constexpr bool is_growable_char_container = detail::is_growable_char_container_impl<Container>::value
 

Typedef Documentation

◆ centi_view

template<typename IntType = int32_t>
using microfmt::centi_view = typedef fixed_point_view<100, 2, IntType>

◆ dependent_predicate_fn

using microfmt::dependent_predicate_fn = typedef bool (*)(const void *window_bytes, void *user_context) noexcept

Function pointer type for evaluating a logical predicate over a memory window.

Parameters
window_bytesPointer to the current memory window chunk.
user_contextOpaque pointer to caller-provided state.
Returns
True if the memory window satisfies the predicate.

◆ format_fn_t

using microfmt::format_fn_t = typedef void (*)(const void *val_ptr, microfmt::string_view spec, const sink &out) noexcept

◆ memory_reader_fn_t

using microfmt::memory_reader_fn_t = typedef size_t (*)(void *ctx, uintptr_t src_addr, uint8_t *dst_buf, size_t max_len) noexcept

Function signature for a safe/probed memory reader.

Parameters
ctxOpaque context pointer (e.g. page table or VM handle).
src_addrVirtual or physical target address to read from.
dst_bufLocal destination buffer to fill.
max_lenNumber of bytes requested.
Returns
size_t Number of bytes successfully read without faulting (0 on error).

◆ metadata_next_fn_t

using microfmt::metadata_next_fn_t = typedef bool (*)(void *ctx, property_entry &out) noexcept

Function pointer signature for fetching the next property entry.

Parameters
ctxMutable pointer to the caller's stack-allocated iteration state.
outOutput property_entry to populate.
Returns
true if a property was successfully populated, false when iteration is complete.

◆ micro_view

template<typename IntType = int32_t>
using microfmt::micro_view = typedef fixed_point_view<1000000, 6, IntType>

◆ milli_view

template<typename IntType = int32_t>
using microfmt::milli_view = typedef fixed_point_view<1000, 3, IntType>

◆ property_print_fn_t

using microfmt::property_print_fn_t = typedef void (*)(const void *val_ptr, const sink &out) noexcept

Function pointer signature for type-erased property value formatting.

◆ remote_binary_tree

◆ remote_field_format_fn

using microfmt::remote_field_format_fn = typedef void (*)(address_space_ref space, const void *field_ptr, span<char> work_buf, const sink &out) noexcept

Type-erased function pointer for formatting a single remote object field from a loaded local struct buffer.

◆ remote_forward_list

◆ remote_hash_table

template<typename Tag >
using microfmt::remote_hash_table = typedef basic_remote_container<Tag, detail::remote_hash_table_dispatch<Tag> >

◆ remote_vector

template<typename Tag >
using microfmt::remote_vector = typedef basic_remote_container<Tag, detail::remote_vector_dispatch<Tag> >

◆ sink

using microfmt::sink = typedef reloco::sink

Type-erased, zero-allocation output sink.

Encapsulates a user-provided context pointer and a stateless write callback function to stream formatted characters without dynamic allocations, virtual dispatch, or RTTI overhead.

An alias for reloco::sink rather than a distinct type: the two were already identical in layout and interface (same ctx/write_fn shape over the same reloco::string_view), and aliasing lets Display<T>/Debug<T> (see fmt.hpp) be driven directly from a microfmt::sink with no adapting/copying. reloco is a header-only dependency embedded directly into microfmt's own translation units (never built/consumed as its own separate shared object here), so reloco::sink's RELOCO_EXPORT visibility decoration behaves the same as MICROFMT_API_CLASS did.

Examples
/home/runner/work/microfmt/microfmt/include/microfmt/formatters/reloco.hpp.

◆ thread_next_fn_t

using microfmt::thread_next_fn_t = typedef bool (*)(void *ctx, thread_info &out) noexcept

Function pointer signature for generating/iterating threads belonging to a task.

Parameters
ctxMutable pointer to caller-owned thread iteration state.
outOutput thread_info structure to populate.
Returns
true if a thread was successfully populated, false when iteration is complete.

◆ unwind_hint_registry_tag

Enumeration Type Documentation

◆ address_space_error

enum class microfmt::address_space_error
strong
Enumerator
invalid_handle 
invalid_address 
invalid_buffer 
empty_buffer 
read_failed 
write_unsupported 
write_failed 

◆ align_mode

enum class microfmt::align_mode : uint8_t
strong
Enumerator
left 
right 
center 

◆ bit_type

enum class microfmt::bit_type : uint8_t
strong
Enumerator
flag 
value_hex 
value_dec 

◆ can_flags

enum class microfmt::can_flags : uint8_t
strong
Enumerator
none 
extended 
rtr 
fd 
brs 
esi 

◆ char_transform

enum class microfmt::char_transform : uint8_t
strong

Per-character transformation applied by transform_sink.

Enumerator
none 
to_upper 
to_lower 
sanitize_ascii 

◆ frame_kind

enum class microfmt::frame_kind : uint8_t
strong

Classifies a hybrid_frame as either a normal stack frame or a trap transition.

Enumerator
standard 
trap_transition 

◆ i2c_dir

enum class microfmt::i2c_dir : uint8_t
strong
Enumerator
write 
read 

◆ i2c_status

enum class microfmt::i2c_status : uint8_t
strong
Enumerator
ok 
nack_addr 
nack_data 
arb_lost 
timeout 

◆ memory_region_type

enum class microfmt::memory_region_type : uint8_t
strong

Enumeration of classified memory region types.

Enumerator
unknown 
kernel_code 
kernel_data 
kernel_stack 
process_stack 
direct_map 
struct_pages 
kernel_heap 
user_code 
user_data 
device_mmio 
guard_page 
ns_map 
ns_device_mmio 

◆ ptr_width_mode

enum class microfmt::ptr_width_mode : uint8_t
strong

Address-width policy used by raw_ptr_view.

Enumerator
native 
compat32 
compat64 

◆ quote_style

enum class microfmt::quote_style : uint8_t
strong

Delimiters placed around the formatted text.

Enumerator
none 
double_quotes 
single_quotes 
brackets 
parens 
angle_brackets 

◆ remote_load_error

enum class microfmt::remote_load_error
strong
Enumerator
null_address 
scratch_too_small 
scratch_misaligned 
invalid_address_space 
read_failed 

◆ remote_page_table_entry_kind

enum class microfmt::remote_page_table_entry_kind : uint8_t
strong

Meaning assigned to a decoded page-table entry.

Enumerator
invalid 
next_table 
leaf 

◆ remote_page_table_walk_error

enum class microfmt::remote_page_table_walk_error : uint8_t
strong

Errors produced while walking remote page tables.

Enumerator
invalid_physical_space 
invalid_layout 
invalid_root 
invalid_level 
unsupported_entry_size 
address_overflow 
read_failed 
decode_failed 
invalid_entry 
unexpected_next_table 
invalid_leaf 

◆ scale_base

enum class microfmt::scale_base : uint16_t
strong
Enumerator
decimal 
binary 

◆ spi_mode

enum class microfmt::spi_mode : uint8_t
strong
Enumerator
mode0 
mode1 
mode2 
mode3 

◆ spi_status

enum class microfmt::spi_status : uint8_t
strong
Enumerator
ok 
timeout 
crc_err 
overrun 

◆ task_state

enum class microfmt::task_state : uint8_t
strong
Enumerator
ready 
running 
suspended 
waiting 
terminated 

◆ text_align

enum class microfmt::text_align : uint8_t
strong

Alignment applied after transformations, quoting, and truncation.

Enumerator
left 
center 
right 

◆ text_case

enum class microfmt::text_case : uint8_t
strong

Text-case transformation applied while the view is formatted.

Enumerator
none 
upper 
lower 
title 

◆ thread_state

enum class microfmt::thread_state : uint8_t
strong

Detailed execution state of an individual thread.

Enumerator
ready 
running 
suspended 
waiting 
sleeping 
terminated 

◆ time_precision

enum class microfmt::time_precision : uint8_t
strong

Fractional-second precision selectors for time formatting.

Each enumerator value encodes the corresponding number of fractional decimal digits to emit.

Enumerator
sec 
ms 
us 
ns 
ps 

Function Documentation

◆ addr_offset()

constexpr addr_offset_view microfmt::addr_offset ( uintptr_t  addr,
uintptr_t  base 
)
constexprnoexcept

◆ align()

constexpr aligned_text_view microfmt::align ( microfmt::string_view  text,
size_t  width,
align_mode  mode = align_mode::left,
char  pad_char = ' ' 
)
constexprnoexcept

◆ alignas()

class MICROFMT_API_CLASS microfmt::alignas ( uint32_t  )

32-bit compatibility string pointer wrapper (for 64-bit hosts).

Stores a 32-bit address and synthesizes a foreign_string_view on demand using caller-supplied scratch buffers.

Synthesizes a foreign_string_view over the pointed string.

Parameters
spaceAddress space handle.
scratchScratch work buffer for chunked reading.
max_limitMaximum character render limit.

◆ as_collection_view()

template<typename Container , std::enable_if_t< reloco::detail::has_collection_view_traits< std::remove_const_t< Container > >::value, int > = 0>
constexpr auto microfmt::as_collection_view ( Container &  c)
constexprnoexcept

◆ as_debug() [1/2]

template<typename T >
constexpr auto microfmt::as_debug ( const T &value  RELOCO_LIFETIMEBOUND)
constexprnoexcept

Wraps value so it always renders through reloco's Debug<T> customization point when one exists, matching Rust's {:?}.

Priority (opposite of a plain {}/{:spec} placeholder, see format_type_thunk above): Debug<T> first, then formatter<T> (with its normal spec-driven parsing – e.g. microfmt::string_view/char's own ?-flag debug quoting, see format_parse_context::consume_debug_flag), and finally Display<T> as the last resort. Debug<T>/Display<T> ignore spec entirely, exactly like a plain placeholder.

Template Parameters
TType of the wrapped value.
Parameters
valueValue to format in debug mode; borrowed, not copied – must outlive the resulting wrapper (rvalues are rejected below).
Returns
A debug_view<T> usable directly as a format/format_to argument.

◆ as_debug() [2/2]

template<typename T , std::enable_if_t<!std::is_lvalue_reference_v< T >, int > = 0>
constexpr auto microfmt::as_debug ( T &&  )
constexprdeletenoexcept

◆ as_debug_variant() [1/3]

template<typename... Ts>
constexpr auto microfmt::as_debug_variant ( const std::variant< Ts... > &&  ,
bool  = false 
)
constexprdeletenoexcept

◆ as_debug_variant() [2/3]

template<typename... Ts>
constexpr auto microfmt::as_debug_variant ( const std::variant< Ts... > &var  RELOCO_LIFETIMEBOUND,
bool  show_index = false 
)
constexprnoexcept

Wraps a variant for debug output (variant(index, ...)).

Template Parameters
TsAlternative types of var.
Parameters
varVariant to format.
show_indexWhen true, include the alternative index.
Returns
A debug-oriented variant_view.

◆ as_debug_variant() [3/3]

template<typename... Ts>
constexpr auto microfmt::as_debug_variant ( std::variant< Ts... > &&  ,
bool  = false 
)
constexprdeletenoexcept

◆ as_demangled()

constexpr auto microfmt::as_demangled ( microfmt::string_view  sym)
constexprnoexcept

Wraps a symbol for demangled formatting.

Parameters
symMangled symbol.
Returns
A demangle_view over the symbol.

◆ as_hash() [1/2]

template<typename T , std::enable_if_t< detail::is_hashable_v< T >, int > = 0>
constexpr auto microfmt::as_hash ( const T &val  RELOCO_LIFETIMEBOUND)
constexprnoexcept

Wraps a value in an hash_view for hashed formatting.

Template Parameters
THashable type, enabled via detail::is_hashable_v.
Parameters
valValue whose hash should be formatted.
Returns
A formattable hash_view over val.

◆ as_hash() [2/2]

template<typename T , std::enable_if_t< !std::is_lvalue_reference_v< T > &&detail::is_hashable_v< std::remove_reference_t< T > >, int > = 0>
constexpr auto microfmt::as_hash ( T &&  )
constexprdeletenoexcept

◆ as_sbintime()

template<typename T , typename = std::enable_if_t<std::is_integral_v<T>>>
constexpr auto microfmt::as_sbintime ( T  val)
constexprnoexcept

Wraps an integral sbintime_t value in an sbintime_view.

Template Parameters
TIntegral type of val.
Parameters
valRaw sbintime_t binary fractional-seconds value.
Returns
A view that can be formatted as sec.frac.

◆ as_string() [1/4]

RELOCO_BEGIN_UNSAFE_CODE constexpr as_string_view microfmt::as_string ( const char *  str)
constexprnoexcept

Wraps a null-terminated C string for advanced string formatting.

Parameters
strString to format, or nullptr (rendered as (null)).
Returns
An as_string_view.

◆ as_string() [2/4]

template<typename CharT , typename Traits , typename Alloc >
as_string_view microfmt::as_string ( const std::basic_string< CharT, Traits, Alloc > &  str)
noexcept

Wraps a std::basic_string for advanced string formatting.

Template Parameters
CharTCharacter type.
TraitsCharacter trait type.
AllocAllocator type.
Parameters
strString to format.
Returns
An as_string_view over the string's contents.

◆ as_string() [3/4]

constexpr as_string_view microfmt::as_string ( microfmt::string_view  sv)
constexprnoexcept

Wraps a string_view for advanced string formatting.

Parameters
svText to format.
Returns
An as_string_view.

◆ as_string() [4/4]

template<typename CharT , typename Traits , typename Alloc >
as_string_view microfmt::as_string ( std::basic_string< CharT, Traits, Alloc > &&  )
deletenoexcept

◆ as_variant() [1/6]

template<typename... Ts>
constexpr auto microfmt::as_variant ( const std::variant< Ts... > &&  )
constexprdeletenoexcept

◆ as_variant() [2/6]

template<typename... Ts>
constexpr auto microfmt::as_variant ( const std::variant< Ts... > &&  ,
microfmt::string_view  ,
microfmt::string_view   
)
constexprdeletenoexcept

◆ as_variant() [3/6]

template<typename... Ts>
constexpr auto microfmt::as_variant ( const std::variant< Ts... > &var  RELOCO_LIFETIMEBOUND)
constexprnoexcept

Wraps a variant for plain formatting.

Template Parameters
TsAlternative types of var.
Parameters
varVariant to format.
Returns
A bare variant_view.

◆ as_variant() [4/6]

template<typename... Ts>
constexpr auto microfmt::as_variant ( const std::variant< Ts... > &var  RELOCO_LIFETIMEBOUND,
microfmt::string_view  prefix,
microfmt::string_view  suffix 
)
constexprnoexcept

Wraps a variant with custom prefix/suffix decorations.

Template Parameters
TsAlternative types of var.
Parameters
varVariant to format.
prefixText emitted before the active alternative.
suffixText emitted after the active alternative.
Returns
A decorated variant_view.

◆ as_variant() [5/6]

template<typename... Ts>
constexpr auto microfmt::as_variant ( std::variant< Ts... > &&  )
constexprdeletenoexcept

◆ as_variant() [6/6]

template<typename... Ts>
constexpr auto microfmt::as_variant ( std::variant< Ts... > &&  ,
microfmt::string_view  ,
microfmt::string_view   
)
constexprdeletenoexcept

◆ auto_bytes()

template<typename T , std::enable_if_t< std::is_integral_v< T >, int > = 0>
constexpr auto microfmt::auto_bytes ( T  bytes,
uint8_t  precision = 2 
)
constexprnoexcept

◆ auto_si()

template<typename T , std::enable_if_t< std::is_integral_v< T >, int > = 0>
constexpr auto microfmt::auto_si ( T  val,
microfmt::string_view  unit,
uint8_t  precision = 2 
)
constexprnoexcept

◆ base64() [1/2]

template<size_t N>
constexpr base64_view microfmt::base64 ( const uint8_t(&)  arr[N])
constexprnoexcept

◆ base64() [2/2]

constexpr base64_view microfmt::base64 ( span< const uint8_t >  bytes)
constexprnoexcept

◆ bin() [1/3]

template<typename T , std::enable_if_t< std::is_integral_v< T > &&!std::is_same_v< T, bool >, int > = 0>
constexpr auto microfmt::bin ( T  val)
constexprnoexcept

◆ bin() [2/3]

template<uint8_t Bits, typename T , std::enable_if_t< std::is_integral_v< T > &&!std::is_same_v< T, bool >, int > = 0>
constexpr auto microfmt::bin ( T  val)
constexprnoexcept

◆ bin() [3/3]

template<typename T >
constexpr bin_view< T > microfmt::bin ( T  val,
int  width = sizeof(T) * 8,
bool  prefix = false 
)
constexprnoexcept

◆ bin_grouped() [1/2]

template<typename T , std::enable_if_t< std::is_integral_v< T > &&!std::is_same_v< T, bool >, int > = 0>
constexpr auto microfmt::bin_grouped ( T  val)
constexprnoexcept

◆ bin_grouped() [2/2]

template<typename T , std::enable_if_t< std::is_integral_v< T > &&!std::is_same_v< T, bool >, int > = 0>
constexpr auto microfmt::bin_grouped ( T  val,
uint8_t  group,
char  sep = '_' 
)
constexprnoexcept

◆ bin_prefixed()

template<typename T , std::enable_if_t< std::is_integral_v< T > &&!std::is_same_v< T, bool >, int > = 0>
constexpr auto microfmt::bin_prefixed ( T  val,
bool  group_nibbles = false 
)
constexprnoexcept

◆ bits()

constexpr bitfield_view microfmt::bits ( uint32_t  raw_val,
span< const bit_field >  fields,
bool  show_raw_hex = true,
microfmt::string_view  sep = " | " 
)
constexprnoexcept

◆ bytes()

constexpr bytes_view microfmt::bytes ( uint64_t  count)
constexprnoexcept

◆ can_extended()

constexpr can_frame_view microfmt::can_extended ( uint32_t  id,
span< const uint8_t >  payload,
bool  rtr = false 
)
constexprnoexcept

Creates an extended 29-bit CAN frame view.

◆ can_fd()

constexpr can_frame_view microfmt::can_fd ( uint32_t  id,
span< const uint8_t >  payload,
bool  is_extended = false,
bool  brs = false,
bool  esi = false 
)
constexprnoexcept

Creates a CAN-FD frame view with optional extended, BRS, and ESI flags.

◆ can_frame() [1/2]

template<size_t N>
constexpr can_frame_view microfmt::can_frame ( uint16_t  id,
const uint8_t(&)  arr[N],
bool  rtr = false 
)
constexprnoexcept

◆ can_frame() [2/2]

constexpr can_frame_view microfmt::can_frame ( uint16_t  id,
span< const uint8_t >  payload,
bool  rtr = false 
)
constexprnoexcept

Creates a standard 11-bit CAN frame view.

◆ centi()

template<typename IntType >
constexpr auto microfmt::centi ( IntType  raw_val)
constexprnoexcept

◆ current_errno()

posix_errno microfmt::current_errno ( )
inlinenoexcept

◆ escaped() [1/5]

RELOCO_BEGIN_UNSAFE_CODE constexpr escaped_view microfmt::escaped ( const char *  str,
size_t  len,
bool  quote = true,
bool  escape_quotes = true 
)
constexprnoexcept

◆ escaped() [2/5]

template<size_t N>
RELOCO_END_UNSAFE_CODE constexpr escaped_view microfmt::escaped ( const char(&)  arr[N],
bool  quote = true,
bool  escape_quotes = true 
)
constexprnoexcept

◆ escaped() [3/5]

template<size_t N>
RELOCO_BEGIN_UNSAFE_CODE constexpr escaped_view microfmt::escaped ( const uint8_t(&)  arr[N],
bool  quote = true,
bool  escape_quotes = true 
)
constexprnoexcept

◆ escaped() [4/5]

constexpr escaped_view microfmt::escaped ( microfmt::string_view  sv,
bool  quote = true,
bool  escape_quotes = true 
)
constexprnoexcept

◆ escaped() [5/5]

RELOCO_END_UNSAFE_CODE RELOCO_BEGIN_UNSAFE_CODE escaped_view microfmt::escaped ( span< const uint8_t >  bytes,
bool  quote = true,
bool  escape_quotes = true 
)
inlinenoexcept

◆ file_sink()

RELOCO_BEGIN_UNSAFE_CODE sink microfmt::file_sink ( std::FILE *  file)
inlinenoexcept

◆ filter() [1/3]

template<typename Range , typename Predicate >
constexpr auto microfmt::filter ( const Range &  rng,
Predicate &&  pred 
)
constexprnoexcept

Create a filtered view over rng using pred.

◆ filter() [2/3]

template<typename T , typename Predicate >
constexpr auto microfmt::filter ( const T *  ptr,
size_t  count,
Predicate &&  pred 
)
constexprnoexcept

Create a filtered view over count elements beginning at ptr.

◆ filter() [3/3]

template<typename Range , typename Predicate , std::enable_if_t<!std::is_lvalue_reference_v< Range >, int > = 0>
constexpr auto microfmt::filter ( Range &&  ,
Predicate &&   
)
constexprdeletenoexcept

◆ fixed()

template<uint64_t Scale, uint8_t Decimals = 2, typename IntType >
constexpr auto microfmt::fixed ( IntType  raw_val)
constexprnoexcept

◆ format() [1/2]

template<size_t N, typename StrProvider , typename... Args>
RELOCO_CONSTEXPR20 buffer_sink< N > microfmt::format ( compile_string_holder< StrProvider >  fmt,
const Args &...  args 
)
inlinenoexcept

◆ format() [2/2]

template<size_t N, typename... Args>
RELOCO_CONSTEXPR20 buffer_sink< N > microfmt::format ( microfmt::string_view  fmt,
const Args &...  args 
)
inlinenoexcept

◆ format_as() [1/2]

template<typename TargetContainer , typename StrProvider , typename... Args>
TargetContainer microfmt::format_as ( compile_string_holder< StrProvider >  fmt,
const Args &...  args 
)
inline

Formats arguments into a newly constructed container using a compile-time checked format string holder.

◆ format_as() [2/2]

template<typename TargetContainer , typename... Args>
TargetContainer microfmt::format_as ( string_view  fmt,
const Args &...  args 
)
inline

Formats arguments into a newly constructed container (e.g., std::string) using a runtime format string.

Template Parameters
TargetContainerThe container type to return (defaults to std::string).
ArgsFormatting argument types.
Parameters
fmtFormat string view.
argsValues to format.
Returns
TargetContainer Populated container with the formatted result.

◆ format_as_container()

template<typename Container = std::string, typename... Args>
RELOCO_END_UNSAFE_CODE std::enable_if< is_growable_char_container< Container >, Container >::type microfmt::format_as_container ( microfmt::string_view  fmt_str,
const Args &...  args 
)

◆ format_errno()

constexpr posix_errno microfmt::format_errno ( int  val)
inlineconstexprnoexcept

◆ format_hexdump()

RELOCO_END_UNSAFE_CODE MICROFMT_API void microfmt::format_hexdump ( const hexdump_view &  h,
span< uint8_t >  line_buffer,
const sink &  out 
)
noexcept

Formats a hex dump using caller-provided line storage.

Parameters
hDump descriptor.
line_bufferReusable byte buffer for one rendered line.
outDestination sink.

Out-of-line (see hexdump.ipp): the largest non-template free function in the formatters/ tree the codesize testbed found still duplicated in full across every shard .so in MICROFMT_SHARED mode (unlike int_formatter_specs – see microfmt.hpp/microfmt.ipp – this one is an ordinary, non-template function, so MICROFMT_API's declare-only/out-of-line split applies to it directly, no overload-resolution trick needed).

◆ format_reg()

template<size_t N, typename UInt >
constexpr auto microfmt::format_reg ( UInt  val,
const reg_descriptor< N > &  desc 
)
constexprnoexcept

Builds a reg_view from a register value and its descriptor.

Template Parameters
NNumber of described fields.
UIntUnderlying unsigned register word type.
Parameters
valRaw register value.
descStatic descriptor naming the register.
Returns
A formattable reg_view.

◆ format_remote_fault()

void microfmt::format_remote_fault ( const sink &  out,
uintptr_t  addr,
symbol_resolver_ref  resolver,
symbol_resolution_context &  context 
)
inlinenoexcept

Formats a human-readable description of a faulting address.

Produces detailed (symbol/module-aware) output when a resolver is available, and falls back to a raw <fault:0x..> marker otherwise.

Parameters
outDestination sink.
addrFaulting address.
resolverOptional symbol resolver.
contextCaller-owned symbol-resolution temporaries.

◆ format_to() [1/4]

template<typename StrProvider , typename... Args>
RELOCO_CONSTEXPR20 void microfmt::format_to ( const sink &  out,
compile_string_holder< StrProvider >  ,
const Args &...  args 
)
inlinenoexcept

◆ format_to() [2/4]

template<typename... Args>
RELOCO_CONSTEXPR20 void microfmt::format_to ( const sink &  out,
microfmt::string_view  fmt,
const Args &...  args 
)
inlinenoexcept

◆ format_to() [3/4]

template<typename OutputIt , typename StrProvider , typename... Args>
RELOCO_CONSTEXPR20 OutputIt microfmt::format_to ( OutputIt  it,
compile_string_holder< StrProvider >  fmt,
const Args &...  args 
)
inlinenoexcept

◆ format_to() [4/4]

template<typename OutputIt , typename... Args>
RELOCO_CONSTEXPR20 OutputIt microfmt::format_to ( OutputIt  it,
microfmt::string_view  fmt,
const Args &...  args 
)
inlinenoexcept

◆ format_to_container()

template<typename Container , typename... Args>
RELOCO_BEGIN_UNSAFE_CODE std::enable_if< is_growable_char_container< Container >, void >::type microfmt::format_to_container ( Container &  dest,
microfmt::string_view  fmt_str,
const Args &...  args 
)

◆ from_packed24()

constexpr semver microfmt::from_packed24 ( uint32_t  packed,
bool  show_v = false 
)
constexprnoexcept

◆ from_packed32()

constexpr semver microfmt::from_packed32 ( uint32_t  packed,
bool  show_v = false 
)
constexprnoexcept

◆ hertz()

template<typename T , std::enable_if_t< std::is_integral_v< T >, int > = 0>
constexpr auto microfmt::hertz ( T  hz,
uint8_t  precision = 2 
)
constexprnoexcept

◆ hex()

template<typename T >
constexpr hex_view< T > microfmt::hex ( T  val,
int  width = 0,
bool  prefix = false,
bool  uppercase = false 
)
constexprnoexcept

◆ hexdump()

constexpr hexdump_view microfmt::hexdump ( span< const uint8_t >  data,
uintptr_t  base_addr = 0,
uint8_t  bytes_per_line = 16,
bool  show_ascii = true 
)
constexprnoexcept

Helper for dumping safe, direct in-memory buffers (zero overhead).

◆ hexdump_checked()

RELOCO_BEGIN_UNSAFE_CODE constexpr hexdump_view microfmt::hexdump_checked ( uintptr_t  base_addr,
size_t  total_len,
memory_reader_fn_t  reader,
void *  ctx = nullptr,
uint8_t  bytes_per_line = 16,
bool  show_ascii = true 
)
constexprnoexcept

Helper for dumping memory via a fault-checked accessor probe.

◆ hexdump_to()

void microfmt::hexdump_to ( const sink &  out,
span< const uint8_t >  data,
uintptr_t  base_address = 0 
)
inlinenoexcept

◆ i2c_10bit()

constexpr i2c_msg_view microfmt::i2c_10bit ( uint16_t  addr_10bit,
i2c_dir  dir,
span< const uint8_t >  data,
i2c_status  status = i2c_status::ok 
)
constexprnoexcept

Creates a 10-bit I2C read or write transaction view.

◆ i2c_read() [1/2]

template<size_t N>
constexpr i2c_msg_view microfmt::i2c_read ( uint8_t  addr_7bit,
const uint8_t(&)  arr[N],
i2c_status  status = i2c_status::ok 
)
constexprnoexcept

◆ i2c_read() [2/2]

constexpr i2c_msg_view microfmt::i2c_read ( uint8_t  addr_7bit,
span< const uint8_t >  data,
i2c_status  status = i2c_status::ok 
)
constexprnoexcept

Creates a 7-bit I2C read transaction view.

◆ i2c_write() [1/2]

template<size_t N>
constexpr i2c_msg_view microfmt::i2c_write ( uint8_t  addr_7bit,
const uint8_t(&)  arr[N],
i2c_status  status = i2c_status::ok 
)
constexprnoexcept

◆ i2c_write() [2/2]

constexpr i2c_msg_view microfmt::i2c_write ( uint8_t  addr_7bit,
span< const uint8_t >  data,
i2c_status  status = i2c_status::ok 
)
constexprnoexcept

Creates a 7-bit I2C write transaction view.

◆ join() [1/4]

template<typename Range , std::enable_if_t< detail::is_range< Range >::value, int > = 0>
constexpr auto microfmt::join ( const Range &  range,
microfmt::string_view  delimiter = ", " 
)
constexprnoexcept

◆ join() [2/4]

template<typename It , typename Sentinel , std::enable_if_t<!std::is_convertible_v< Sentinel, microfmt::string_view >, int > = 0>
constexpr auto microfmt::join ( It  first,
Sentinel  last,
microfmt::string_view  delimiter = ", " 
)
constexprnoexcept

◆ join() [3/4]

template<typename Range , std::enable_if_t< !std::is_lvalue_reference_v< Range > &&detail::is_range< std::remove_reference_t< Range > >::value, int > = 0>
constexpr auto microfmt::join ( Range &&  ,
microfmt::string_view  = ", " 
)
constexprdeletenoexcept

◆ join() [4/4]

template<typename T >
constexpr joined_span_view< T > microfmt::join ( span< const T >  items,
microfmt::string_view  delim = ", " 
)
constexprnoexcept

◆ mac() [1/5]

template<typename ContainerT , std::enable_if_t< detail::is_mac_container< ContainerT >::value, int > = 0>
constexpr mac_view microfmt::mac ( const ContainerT &  c,
char  separator = ':',
bool  uppercase = false 
)
constexprnoexcept

◆ mac() [2/5]

constexpr mac_view microfmt::mac ( const uint8_t(&)  arr[6],
char  separator = ':',
bool  uppercase = false 
)
constexprnoexcept

◆ mac() [3/5]

constexpr mac_view microfmt::mac ( const uint8_t(&)  arr[8],
char  separator = ':',
bool  uppercase = false 
)
constexprnoexcept

◆ mac() [4/5]

template<typename ContainerT , std::enable_if_t<!std::is_lvalue_reference_v< ContainerT > &&detail::is_mac_container< std::remove_reference_t< ContainerT > >::value, int > = 0>
constexpr mac_view microfmt::mac ( ContainerT &&  ,
char  = ':',
bool  = false 
)
constexprdeletenoexcept

◆ mac() [5/5]

constexpr mac_view microfmt::mac ( span< const uint8_t >  bytes,
char  separator = ':',
bool  uppercase = false 
)
constexprnoexcept

◆ make_callback_sink()

template<typename Callable >
constexpr callback_sink< Callable > microfmt::make_callback_sink ( Callable &fn  RELOCO_LIFETIMEBOUND)
constexprnoexcept

Helper factory function to construct a callback_sink with template deduction.

Template Parameters
CallableDeduced callable type.
Parameters
fnCallable object (e.g., lambda, functor).
Returns
Configured callback_sink instance.

◆ make_container_context()

template<typename IteratorState , typename FormatterFn >
constexpr auto microfmt::make_container_context ( IteratorState  initial_state,
FormatterFn  formatter 
)
constexprnoexcept

Creates an external context for a remote container view.

Template Parameters
IteratorStateState retained while traversing the container.
FormatterFnCallable type used to render the container.
Parameters
initial_stateInitial state supplied to formatter.
formatterCallable accepting state, options, address space, scratch storage, and sink.
Returns
A container_context retaining the supplied state and callable.

◆ make_container_sink()

template<typename Container , typename std::enable_if< is_growable_char_container< Container >, int >::type = 0>
constexpr auto microfmt::make_container_sink ( Container &c  RELOCO_LIFETIMEBOUND)
constexprnoexcept

◆ make_format_args()

template<typename... Args>
RELOCO_CONSTEXPR20 auto microfmt::make_format_args ( const Args &...args  RELOCO_LIFETIMEBOUND)
noexcept

Captures arguments into a type-erased storage object.

The returned object MUST live on the stack for the duration of the formatting operation.

◆ make_mutable_ucontext_register_context_ref()

register_context_ref microfmt::make_mutable_ucontext_register_context_ref ( ucontext_t &uctx  RELOCO_LIFETIMEBOUND,
address_space_ref  space,
span< std::byte > scratch  RELOCO_LIFETIMEBOUND 
)
inlinenoexcept

Creates a mutable, type-erased register_context_ref backed by a POSIX ucontext_t, supporting both register reads and writes.

Useful for adjusting a captured or signal-delivered context in place (e.g. redirecting pc/sp before a setcontext()/swapcontext() resume). Registers are addressed by DWARF index (see microfmt::dwarf); supports Linux and FreeBSD across x86, x86_64, ARM, AArch64, and RISC-V with zero heap allocations or exceptions.

Parameters
uctxContext to read/write registers on; must outlive the returned ref. Takes a non-const reference/pointer since writes mutate it in place.
spaceAddress space used for any subsequent memory reads (e.g. by an unwinder consuming this context); unrelated to register reads/writes.
scratchReusable scratch buffer forwarded to the returned ref.

◆ make_read_only_register_context_ref()

template<auto Read, typename State >
constexpr register_context_ref microfmt::make_read_only_register_context_ref ( State &state  RELOCO_LIFETIMEBOUND,
address_space_ref  space,
span< std::byte > scratch  RELOCO_LIFETIMEBOUND 
)
constexprnoexcept

◆ make_reg_grid()

template<typename StructOrArray , typename WordType , size_t N>
RELOCO_BEGIN_UNSAFE_CODE constexpr auto microfmt::make_reg_grid ( const StructOrArray &  data,
const reg_grid_desc< WordType, N > &  desc 
)
constexprnoexcept

Builds a reg_grid_view over an array/struct of register data.

Template Parameters
StructOrArraySource object type (must be at least N * sizeof(WordType) bytes).
WordTypeUnderlying register word type.
NNumber of register entries in desc.
Parameters
dataRaw register storage (array or POD struct).
descStatic descriptor naming the entries.
Returns
A formattable reg_grid_view.

◆ make_register_context_ref()

template<auto Read, auto Write, typename State >
constexpr register_context_ref microfmt::make_register_context_ref ( State &state  RELOCO_LIFETIMEBOUND,
address_space_ref  space,
span< std::byte > scratch  RELOCO_LIFETIMEBOUND 
)
constexprnoexcept

◆ make_remote_basic_string_view() [1/2]

template<typename Layout , size_t N>
constexpr auto microfmt::make_remote_basic_string_view ( uintptr_t  object_address,
address_space_ref  space,
char(&)  scratch[N],
Layout  layout,
size_t  max_limit = 4096 
)
constexprnoexcept

◆ make_remote_basic_string_view() [2/2]

template<typename Layout >
constexpr auto microfmt::make_remote_basic_string_view ( uintptr_t  object_address,
address_space_ref  space,
span< char >  scratch,
Layout  layout,
size_t  max_limit = 4096 
)
constexprnoexcept

Creates a length-aware remote string view with template deduction.

◆ make_remote_binary_tree() [1/2]

template<typename Key , typename Value , typename RemotePtr = uintptr_t>
constexpr auto microfmt::make_remote_binary_tree ( uintptr_t  container_addr,
ptrdiff_t  root_offset,
ptrdiff_t  left_offset,
ptrdiff_t  right_offset,
ptrdiff_t  key_offset,
ptrdiff_t  value_offset 
)
constexprnoexcept

Creates a binary-tree inspector for a conventional offset layout.

◆ make_remote_binary_tree() [2/2]

template<typename Tag >
constexpr remote_binary_tree< Tag > microfmt::make_remote_binary_tree ( uintptr_t  container_addr,
typename remote_binary_tree_traits< Tag >::context_type  context 
)
constexprnoexcept

◆ make_remote_carray()

template<typename T >
constexpr auto microfmt::make_remote_carray ( uintptr_t  array_addr,
size_t  count 
)
constexprnoexcept

Creates a vector inspector for a fixed-size remote C array.

◆ make_remote_forward_list() [1/2]

template<typename T , typename RemotePtr = uintptr_t>
constexpr auto microfmt::make_remote_forward_list ( uintptr_t  container_addr,
ptrdiff_t  head_offset,
ptrdiff_t  next_offset,
ptrdiff_t  data_offset 
)
constexprnoexcept

Creates a forward-list inspector for a conventional offset layout.

◆ make_remote_forward_list() [2/2]

template<typename Tag >
constexpr remote_forward_list< Tag > microfmt::make_remote_forward_list ( uintptr_t  container_addr,
typename remote_forward_list_traits< Tag >::context_type  context 
)
constexprnoexcept

Creates a typed remote forward list with caller-defined traits.

◆ make_remote_hash_table() [1/2]

template<typename Key , typename Value , typename RemotePtr = uintptr_t, typename RemoteSize = size_t>
constexpr auto microfmt::make_remote_hash_table ( uintptr_t  container_addr,
ptrdiff_t  buckets_ptr_offset,
ptrdiff_t  bucket_count_offset,
ptrdiff_t  node_next_offset,
ptrdiff_t  node_key_offset,
ptrdiff_t  node_value_offset 
)
constexprnoexcept

Creates a chained-hash-table inspector for a conventional layout.

◆ make_remote_hash_table() [2/2]

template<typename Tag >
constexpr remote_hash_table< Tag > microfmt::make_remote_hash_table ( uintptr_t  container_addr,
typename remote_hash_table_traits< Tag >::context_type  context 
)
constexprnoexcept

◆ make_remote_layout_query()

template<typename Value , typename Callback >
constexpr auto microfmt::make_remote_layout_query ( Callback  callback)
constexprnoexcept

Creates a query backed by a callback retained by value.

◆ make_remote_offset_query()

template<typename Value , typename Stored = Value>
constexpr auto microfmt::make_remote_offset_query ( ptrdiff_t  offset)
constexprnoexcept

Creates a query backed by a typed remote-object offset.

◆ make_remote_ref32()

template<typename T , size_t N>
constexpr auto microfmt::make_remote_ref32 ( compat32_ptr< T >  ptr,
address_space_ref  space,
std::byte(&)  scratch[N] 
)
constexprnoexcept

Builds a remote_ref over a 32-bit object pointer.

Template Parameters
TReferenced remote object type.
NScratch buffer size.
Parameters
ptr32-bit pointer to the remote object.
spaceAddress space the object lives in.
scratchScratch buffer for loading the object.
Returns
A remote_ref bound to the pointer.

◆ make_remote_string32()

template<size_t N>
constexpr auto microfmt::make_remote_string32 ( compat32_ptr< const char >  ptr,
address_space_ref  space,
char(&)  scratch[N],
size_t  max_limit = 4096 
)
constexprnoexcept

Builds a remote_string_view over a 32-bit string pointer.

Template Parameters
NScratch buffer size.
Parameters
ptr32-bit pointer to the remote string.
spaceAddress space the string lives in.
scratchScratch buffer for copying characters.
max_limitMaximum characters to fetch.
Returns
A remote_string_view bound to the pointer.

◆ make_remote_symbol()

constexpr auto microfmt::make_remote_symbol ( uintptr_t  addr,
symbol_resolver_ref  resolver,
symbol_resolution_context &  context,
bool  demangle = true 
)
constexprnoexcept

Convenience factory building a remote_symbol_view.

Parameters
addrAddress to resolve and render.
resolverSymbol resolver to use.
contextCaller-owned symbol-resolution temporaries.
demangleWhen true, demangle Itanium symbol names.
Returns
A configured remote_symbol_view.

◆ make_remote_vector() [1/2]

template<typename T , typename RemotePtr = uintptr_t, typename RemoteSize = size_t>
constexpr auto microfmt::make_remote_vector ( uintptr_t  container_addr,
ptrdiff_t  data_offset,
ptrdiff_t  size_offset,
ptrdiff_t  capacity_offset = -1 
)
constexprnoexcept

Creates a vector inspector for a conventional offset layout.

◆ make_remote_vector() [2/2]

template<typename Tag >
constexpr remote_vector< Tag > microfmt::make_remote_vector ( uintptr_t  container_addr,
typename remote_vector_traits< Tag >::context_type  context 
)
constexprnoexcept

◆ make_tee()

template<typename... Sinks>
constexpr auto microfmt::make_tee ( Sinks...  sinks)
constexprnoexcept

◆ make_ucontext_register_context_ref()

register_context_ref microfmt::make_ucontext_register_context_ref ( const ucontext_t &uctx  RELOCO_LIFETIMEBOUND,
address_space_ref  space,
span< std::byte > scratch  RELOCO_LIFETIMEBOUND 
)
inlinenoexcept

Creates a read-only, type-erased register_context_ref backed by a POSIX ucontext_t (e.g. a signal handler's third argument).

Registers are addressed by DWARF index (see microfmt::dwarf); supports Linux and FreeBSD across x86, x86_64, ARM, AArch64, and RISC-V with zero heap allocations or exceptions.

Parameters
uctxContext to read registers from; must outlive the returned ref.
spaceAddress space used for any subsequent memory reads (e.g. by an unwinder consuming this context); unrelated to register reads.
scratchReusable scratch buffer forwarded to the returned ref.

◆ map_view() [1/5]

template<typename MapContainer >
constexpr auto microfmt::map_view ( const MapContainer &  m)
constexprnoexcept

Create a view using pair-like or key/value-member extraction.

◆ map_view() [2/5]

template<typename MapContainer , typename KeyFn , typename ValFn >
constexpr auto microfmt::map_view ( const MapContainer &  m,
KeyFn &&  kfn,
ValFn &&  vfn 
)
constexprnoexcept

Create a view using custom extractors for each range element.

◆ map_view() [3/5]

template<typename Iterator , typename Sentinel , typename KeyFn = default_key_fn, typename ValFn = default_val_fn, typename std::enable_if< detail::is_dereferenceable< Iterator >::value, int >::type = 0>
constexpr auto microfmt::map_view ( Iterator  first,
Sentinel  last,
KeyFn &&  kfn = KeyFn{},
ValFn &&  vfn = ValFn{} 
)
constexprnoexcept

Create a view over an iterator/sentinel range with optional extractors.

◆ map_view() [4/5]

template<typename MapContainer , std::enable_if_t<!std::is_lvalue_reference_v< MapContainer >, int > = 0>
constexpr auto microfmt::map_view ( MapContainer &&  )
constexprdeletenoexcept

◆ map_view() [5/5]

template<typename MapContainer , typename KeyFn , typename ValFn , std::enable_if_t<!std::is_lvalue_reference_v< MapContainer >, int > = 0>
constexpr auto microfmt::map_view ( MapContainer &&  ,
KeyFn &&  ,
ValFn &&   
)
constexprdeletenoexcept

◆ mat()

template<typename T , size_t Rows, size_t Cols>
constexpr auto microfmt::mat ( const T(&)  arr[Rows *Cols])
constexprnoexcept

◆ mem_diff() [1/2]

template<typename T1 , typename T2 >
RELOCO_BEGIN_UNSAFE_CODE constexpr memory_diff_view microfmt::mem_diff ( span< const T1 >  old_span,
span< const std::byte >  new_span,
uintptr_t  base_addr = 0 
)
constexprnoexcept

Creates a memory diff view over two microfmt::span containers.

Template Parameters
T1Element type of the baseline/old span.
T2Element type of the modified/new span.
Parameters
old_spanBaseline memory span.
new_spanModified memory span.
base_addrOptional base address for absolute address annotation.
Returns
A lightweight memory_diff_view instance.

◆ mem_diff() [2/2]

template<typename T1 , typename T2 >
RELOCO_END_UNSAFE_CODE RELOCO_BEGIN_UNSAFE_CODE constexpr memory_diff_view microfmt::mem_diff ( span< const T1 >  old_span,
span< const T2 >  new_span,
uintptr_t  base_addr = 0 
)
constexprnoexcept

◆ mem_range()

constexpr memory_range_view microfmt::mem_range ( uintptr_t  start,
uintptr_t  end 
)
constexprnoexcept

◆ micro()

template<typename IntType >
constexpr auto microfmt::micro ( IntType  raw_val)
constexprnoexcept

◆ MICROFMT_RELOCO_RING_FORMATTER() [1/5]

microfmt::MICROFMT_RELOCO_RING_FORMATTER ( template< typename T >  ,
reloco::outline_ring_buffer< T >   
)

◆ MICROFMT_RELOCO_RING_FORMATTER() [2/5]

microfmt::MICROFMT_RELOCO_RING_FORMATTER ( template< typename T >  ,
reloco::ring_buffer< T >   
)

◆ MICROFMT_RELOCO_RING_FORMATTER() [3/5]

microfmt::MICROFMT_RELOCO_RING_FORMATTER ( template< typename T >  ,
reloco::ring_buffer_ref< T >   
)

◆ MICROFMT_RELOCO_RING_FORMATTER() [4/5]

microfmt::MICROFMT_RELOCO_RING_FORMATTER ( template< typename T MICROFMT_COMMA std::size_t N >  ,
reloco::inline_ring_buffer< T MICROFMT_COMMA N >   
)

◆ MICROFMT_RELOCO_RING_FORMATTER() [5/5]

microfmt::MICROFMT_RELOCO_RING_FORMATTER ( template< typename T MICROFMT_COMMA std::size_t N >  ,
reloco::sso_ring_buffer< T MICROFMT_COMMA N >   
)

◆ milli()

template<typename IntType >
constexpr auto microfmt::milli ( IntType  raw_val)
constexprnoexcept

◆ operator&() [1/2]

RELOCO_END_UNSAFE_CODE constexpr bool microfmt::operator& ( can_flags  a,
can_flags  b 
)
constexprnoexcept

◆ operator&() [2/2]

RELOCO_END_UNSAFE_CODE constexpr bool microfmt::operator& ( i2c_flags  a,
i2c_flags  b 
)
constexprnoexcept

◆ operator|() [1/2]

RELOCO_BEGIN_UNSAFE_CODE constexpr can_flags microfmt::operator| ( can_flags  a,
can_flags  b 
)
constexprnoexcept

◆ operator|() [2/2]

RELOCO_BEGIN_UNSAFE_CODE constexpr i2c_flags microfmt::operator| ( i2c_flags  a,
i2c_flags  b 
)
constexprnoexcept

◆ pad()

constexpr styled_str_view microfmt::pad ( microfmt::string_view  s,
size_t  width,
text_align  a = text_align::left,
char  fill = ' ' 
)
constexprnoexcept

Pad text to at least width characters using the selected alignment.

◆ pad_center()

constexpr styled_str_view microfmt::pad_center ( microfmt::string_view  s,
size_t  width,
char  fill = ' ' 
)
constexprnoexcept

Center text in a field of at least width characters.

◆ pad_right()

constexpr styled_str_view microfmt::pad_right ( microfmt::string_view  s,
size_t  width,
char  fill = ' ' 
)
constexprnoexcept

Right-align text in a field of at least width characters.

◆ print() [1/6]

template<typename StrProvider , typename... Args>
void microfmt::print ( compile_string_holder< StrProvider >  fmt,
const Args &...  args 
)
inlinenoexcept

◆ print() [2/6]

template<typename... Args>
void microfmt::print ( microfmt::string_view  fmt_str,
const Args &...  args 
)
inlinenoexcept

◆ print() [3/6]

template<typename StrProvider , typename... Args>
RELOCO_END_UNSAFE_CODE void microfmt::print ( sink  s,
compile_string_holder< StrProvider >  fmt,
const Args &...  args 
)
inlinenoexcept

◆ print() [4/6]

template<typename... Args>
void microfmt::print ( sink  s,
microfmt::string_view  fmt_str,
const Args &...  args 
)
inlinenoexcept

◆ print() [5/6]

template<typename StrProvider , typename... Args>
RELOCO_BEGIN_UNSAFE_CODE void microfmt::print ( std::FILE *  file,
compile_string_holder< StrProvider >  fmt,
const Args &...  args 
)
inlinenoexcept

◆ print() [6/6]

template<typename... Args>
RELOCO_END_UNSAFE_CODE RELOCO_BEGIN_UNSAFE_CODE void microfmt::print ( std::FILE *  file,
microfmt::string_view  fmt_str,
const Args &...  args 
)
inlinenoexcept

◆ println() [1/9]

void microfmt::println ( )
inlinenoexcept

◆ println() [2/9]

template<typename StrProvider , typename... Args>
void microfmt::println ( compile_string_holder< StrProvider >  fmt,
const Args &...  args 
)
inlinenoexcept

◆ println() [3/9]

template<typename... Args>
void microfmt::println ( microfmt::string_view  fmt_str,
const Args &...  args 
)
inlinenoexcept

◆ println() [4/9]

void microfmt::println ( sink  s)
inlinenoexcept

◆ println() [5/9]

template<typename StrProvider , typename... Args>
void microfmt::println ( sink  s,
compile_string_holder< StrProvider >  fmt,
const Args &...  args 
)
inlinenoexcept

◆ println() [6/9]

template<typename... Args>
void microfmt::println ( sink  s,
microfmt::string_view  fmt_str,
const Args &...  args 
)
inlinenoexcept

◆ println() [7/9]

RELOCO_BEGIN_UNSAFE_CODE void microfmt::println ( std::FILE *  file)
inlinenoexcept

◆ println() [8/9]

template<typename StrProvider , typename... Args>
RELOCO_END_UNSAFE_CODE RELOCO_BEGIN_UNSAFE_CODE void microfmt::println ( std::FILE *  file,
compile_string_holder< StrProvider >  fmt,
const Args &...  args 
)
inlinenoexcept

◆ println() [9/9]

template<typename... Args>
RELOCO_END_UNSAFE_CODE RELOCO_BEGIN_UNSAFE_CODE void microfmt::println ( std::FILE *  file,
microfmt::string_view  fmt_str,
const Args &...  args 
)
inlinenoexcept

◆ quoted()

constexpr styled_str_view microfmt::quoted ( microfmt::string_view  s,
quote_style  q = quote_style::double_quotes 
)
constexprnoexcept

Surround text with the selected pair of delimiters.

◆ raw_ptr() [1/3]

template<typename T >
RELOCO_BEGIN_UNSAFE_CODE constexpr raw_ptr_view microfmt::raw_ptr ( const T *  ptr,
ptr_width_mode  mode = ptr_width_mode::native 
)
constexprnoexcept

Create a raw address view from a typed pointer. Create a null raw address view.

◆ raw_ptr() [2/3]

RELOCO_END_UNSAFE_CODE constexpr raw_ptr_view microfmt::raw_ptr ( std::nullptr_t  ,
ptr_width_mode  mode = ptr_width_mode::native 
)
constexprnoexcept

Create a raw address view from an integer address. An address of zero is formatted as null.

◆ raw_ptr() [3/3]

constexpr raw_ptr_view microfmt::raw_ptr ( uintptr_t  addr,
ptr_width_mode  mode = ptr_width_mode::native 
)
constexprnoexcept

◆ raw_ptr32() [1/3]

template<typename T >
constexpr raw_ptr_view microfmt::raw_ptr32 ( const T *  ptr)
constexprnoexcept

Create a raw address view with an 8-hex-digit, 32-bit compatible width.

◆ raw_ptr32() [2/3]

constexpr raw_ptr_view microfmt::raw_ptr32 ( std::nullptr_t  )
constexprnoexcept

Create a 32-bit-compatible null raw address view.

◆ raw_ptr32() [3/3]

constexpr raw_ptr_view microfmt::raw_ptr32 ( uintptr_t  addr)
constexprnoexcept

Create a 32-bit-compatible raw address view from an integer address.

◆ raw_range() [1/2]

template<typename T >
constexpr raw_range_view< T > microfmt::raw_range ( const T *  first,
const T *  last 
)
constexprnoexcept

Create a value range from begin and one-past-end pointers. Both pointers must designate positions within the same array.

◆ raw_range() [2/2]

template<typename T >
constexpr raw_range_view< T > microfmt::raw_range ( const T *  first,
size_t  count 
)
constexprnoexcept

Create a value range from a pointer and element count. A null pointer produces an empty range.

◆ reg_descriptor()

template<typename... Fields>
microfmt::reg_descriptor ( microfmt::string_view  ,
size_t  ,
Fields...   
) -> reg_descriptor< sizeof...(Fields)>

Deduction guide deriving the field count for reg_descriptor.

◆ reg_grid_desc()

template<typename WordType , typename... Names>
microfmt::reg_grid_desc ( reg_grid_type_tag< WordType >  ,
microfmt::string_view  ,
uint8_t  ,
Names...   
) -> reg_grid_desc< WordType, sizeof...(Names)>

Deduction guide deriving the entry count for reg_grid_desc.

◆ remote_mem_diff()

constexpr remote_memory_diff_view microfmt::remote_mem_diff ( address_space_ref  old_space,
uintptr_t  old_addr,
address_space_ref  new_space,
uintptr_t  new_addr,
size_t  size,
span< std::byte >  scratch_buffer 
)
constexprnoexcept

Creates a remote memory diff view.

◆ repeat() [1/2]

template<typename T >
constexpr auto microfmt::repeat ( T  value,
size_t  count 
)
constexprnoexcept

Create a view that repeats value count times with no separator.

◆ repeat() [2/2]

template<typename T >
constexpr auto microfmt::repeat ( T  value,
size_t  count,
microfmt::string_view  separator 
)
constexprnoexcept

Create a view that repeats value count times, joined by separator.

◆ resolve_fp_register()

template<typename AbiTraits >
uint32_t microfmt::resolve_fp_register ( register_context_ref  reg_ctx)
noexcept

Resolves the frame-pointer register to use for AbiTraits.

Architectures whose frame-pointer register is fixed (all except ARM) fall back to the static AbiTraits::fp_reg. ARM's frame-pointer register instead depends on the live ARM/Thumb instruction-set state (R11 vs. R7), so arm_abi_traits::resolve_fp_reg consults CPSR (or a documented fallback) via reg_ctx.

Template Parameters
AbiTraitsArchitecture ABI traits.
Parameters
reg_ctxRegister context to consult, if the traits need it.
Returns
DWARF register number holding the frame pointer.

◆ resolve_frame_slot_offsets()

template<typename AbiTraits >
bool microfmt::resolve_frame_slot_offsets ( register_context_ref  reg_ctx,
ptrdiff_t &  out_fp_slot_offset,
ptrdiff_t &  out_ra_slot_offset 
)
noexcept

Resolves the FP-relative saved-FP/saved-RA slot offsets to use for AbiTraits's naive FP-chain walking (fp_unwinder_tag).

Architectures whose FP-chain layout is fixed (all except ARM) fall back to the static AbiTraits::fp_slot_offset / AbiTraits::ra_slot_offset and always succeed. ARM's layout instead depends on the live ARM/Thumb instruction-set state – reliable only in ARM (A32) state – so arm_abi_traits::resolve_frame_slot_offsets consults CPSR via reg_ctx and reports failure in Thumb/Thumb-2 state rather than guessing.

Template Parameters
AbiTraitsArchitecture ABI traits.
Parameters
reg_ctxRegister context to consult, if the traits need it.
[out]out_fp_slot_offsetReceives the saved-FP slot offset.
[out]out_ra_slot_offsetReceives the saved-RA slot offset.
Returns
true when the offsets are trustworthy for the current state; false when FP-chain walking cannot be relied on (e.g. ARM in Thumb state).

◆ spi_duplex() [1/2]

template<size_t N1, size_t N2>
constexpr spi_transfer_view microfmt::spi_duplex ( const uint8_t(&)  mosi[N1],
const uint8_t(&)  miso[N2],
uint8_t  cs = 0,
spi_mode  mode = spi_mode::mode0,
spi_status  status = spi_status::ok 
)
constexprnoexcept

◆ spi_duplex() [2/2]

constexpr spi_transfer_view microfmt::spi_duplex ( span< const uint8_t >  mosi,
span< const uint8_t >  miso,
uint8_t  cs = 0,
spi_mode  mode = spi_mode::mode0,
spi_status  status = spi_status::ok 
)
constexprnoexcept

Creates a full-duplex SPI transfer view.

◆ spi_read() [1/2]

template<size_t N>
constexpr spi_transfer_view microfmt::spi_read ( const uint8_t(&)  miso[N],
uint8_t  cs = 0,
spi_mode  mode = spi_mode::mode0,
spi_status  status = spi_status::ok 
)
constexprnoexcept

◆ spi_read() [2/2]

constexpr spi_transfer_view microfmt::spi_read ( span< const uint8_t >  miso,
uint8_t  cs = 0,
spi_mode  mode = spi_mode::mode0,
spi_status  status = spi_status::ok 
)
constexprnoexcept

Creates a read-only SPI transfer view.

◆ spi_write() [1/2]

template<size_t N>
constexpr spi_transfer_view microfmt::spi_write ( const uint8_t(&)  mosi[N],
uint8_t  cs = 0,
spi_mode  mode = spi_mode::mode0,
spi_status  status = spi_status::ok 
)
constexprnoexcept

◆ spi_write() [2/2]

constexpr spi_transfer_view microfmt::spi_write ( span< const uint8_t >  mosi,
uint8_t  cs = 0,
spi_mode  mode = spi_mode::mode0,
spi_status  status = spi_status::ok 
)
constexprnoexcept

Creates a write-only SPI transfer view.

◆ stderr_sink()

sink microfmt::stderr_sink ( )
inlinenoexcept

◆ stdout_sink()

RELOCO_END_UNSAFE_CODE sink microfmt::stdout_sink ( )
inlinenoexcept

◆ to_lower()

constexpr styled_str_view microfmt::to_lower ( microfmt::string_view  s)
constexprnoexcept

Convert ASCII letters in text to lowercase while formatting.

◆ to_upper()

constexpr styled_str_view microfmt::to_upper ( microfmt::string_view  s)
constexprnoexcept

Convert ASCII letters in text to uppercase while formatting.

◆ truncate()

constexpr styled_str_view microfmt::truncate ( microfmt::string_view  s,
size_t  max_chars,
bool  use_ellipsis = true 
)
constexprnoexcept

Limit text to max_chars, optionally replacing its final three characters with an ellipsis when it is truncated.

◆ try_format_as_container()

template<typename Container , typename... Args>
std::enable_if< is_growable_char_container< Container > &&std::is_constructible< Container, reloco::allocator_ref >::value, reloco::result< Container > >::type microfmt::try_format_as_container ( reloco::allocator_ref  alloc,
microfmt::string_view  fmt_str,
const Args &...  args 
)

◆ try_format_to_container()

template<typename Container , typename... Args>
std::enable_if< is_growable_char_container< Container >, reloco::result< void > >::type microfmt::try_format_to_container ( Container &  dest,
microfmt::string_view  fmt_str,
const Args &...  args 
)

◆ uuid() [1/4]

template<typename ArrayT , std::enable_if_t<!std::is_lvalue_reference_v< ArrayT > &&detail::is_uuid_container< std::remove_reference_t< ArrayT > >::value, int > = 0>
constexpr uuid_view microfmt::uuid ( ArrayT &&  ,
bool  = false,
bool  = false 
)
constexprdeletenoexcept

◆ uuid() [2/4]

template<typename ArrayT , std::enable_if_t< detail::is_uuid_container< ArrayT >::value, int > = 0>
constexpr uuid_view microfmt::uuid ( const ArrayT &  arr,
bool  uppercase = false,
bool  braced = false 
)
constexprnoexcept

◆ uuid() [3/4]

constexpr uuid_view microfmt::uuid ( const uint8_t(&)  arr[16],
bool  uppercase = false,
bool  braced = false 
)
constexprnoexcept

◆ uuid() [4/4]

constexpr uuid_view microfmt::uuid ( span< const uint8_t >  b,
bool  uppercase = false,
bool  braced = false 
)
constexprnoexcept

◆ vec()

template<typename T , size_t N>
constexpr auto microfmt::vec ( const T(&)  arr[N])
constexprnoexcept

◆ vec3()

template<typename T >
constexpr auto microfmt::vec3 ( const T &  x,
const T &  y,
const T &  z 
)
constexprnoexcept

◆ version()

constexpr semver microfmt::version ( uint16_t  major,
uint16_t  minor,
uint16_t  patch,
microfmt::string_view  prerelease = "",
microfmt::string_view  build = "",
bool  show_v = false 
)
constexprnoexcept

◆ vformat_args_as()

template<typename TargetContainer >
TargetContainer microfmt::vformat_args_as ( microfmt::string_view  fmt,
format_args  args 
)
inline

Formats type-erased arguments into a newly constructed container (e.g., std::string).

This is the non-templated (on arguments) counterpart to format_as.

Template Parameters
TargetContainerThe container type to return (like std::string).
Parameters
fmtFormat string view.
argsType-erased formatting argument view.
Returns
TargetContainer Populated container with the formatted result.

◆ vformat_args_to()

void microfmt::vformat_args_to ( const sink &  out,
microfmt::string_view  fmt,
format_args  args 
)
inlinenoexcept

Type-erased formatting engine entry point.

Formats a string using a pre-compiled format_args block. This is non-templated to minimize binary bloat and allow deferred formatting.

Parameters
outThe destination sink.
fmtThe format string view.
argsThe type-erased argument view.

◆ vformat_to()

MICROFMT_API void microfmt::vformat_to ( const sink &  out,
const microfmt::string_view  fmt,
const span< const void *const >  arg_ptrs,
const span< const format_fn_t >  arg_fns 
)
noexcept

◆ with_unit()

template<typename T >
constexpr auto microfmt::with_unit ( T  val,
microfmt::string_view  unit 
)
constexprnoexcept

Variable Documentation

◆ i2c_flags

enum RELOCO_FLAG_ENUM microfmt::i2c_flags
strong

◆ is_bintime_v

template<typename T >
constexpr bool microfmt::is_bintime_v = is_bintime<std::remove_cv_t<std::remove_reference_t<T>>>::value
inlineconstexpr

Convenience variable template for is_bintime.

Template Parameters
TCandidate time type.

◆ is_growable_char_container

template<typename Container >
constexpr bool microfmt::is_growable_char_container = detail::is_growable_char_container_impl<Container>::value
inlineconstexpr

◆ is_timespec_v

template<typename T >
constexpr bool microfmt::is_timespec_v = detail::is_timespec_like<std::remove_cv_t<std::remove_reference_t<T>>>::value
inlineconstexpr

Variable template for detail::is_timespec_like.

Template Parameters
TCandidate type.

◆ is_timeval_v

template<typename T >
constexpr bool microfmt::is_timeval_v = detail::is_timeval_like<std::remove_cv_t<std::remove_reference_t<T>>>::value
inlineconstexpr

Variable template for detail::is_timeval_like.

Template Parameters
TCandidate type.

◆ nostart

enum RELOCO_FLAG_ENUM microfmt::nostart = 1 << 1

◆ RELOCO_END_UNSAFE_CODE

microfmt::RELOCO_END_UNSAFE_CODE

◆ stop

enum RELOCO_FLAG_ENUM microfmt::stop
Initial value:
= 1 << 2
}

◆ ten_bit

enum RELOCO_FLAG_ENUM microfmt::ten_bit = 1 << 0