microfmt
Zero-allocation C++ formatting for constrained environments
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | List of all members
microfmt::basic_remote_container< Tag, Dispatcher > Class Template Reference

Owning typed container bound to a compile-time traits dispatcher. More...

#include <remote_container.hpp>

Public Types

using traits_type = typename Dispatcher::traits_type
 
using context_type = typename traits_type::context_type
 

Public Member Functions

constexpr basic_remote_container (uintptr_t container_addr, context_type context) noexcept
 
constexpr uintptr_t container_address () const noexcept
 
constexpr value_ref< context_type > context () &noexcept RELOCO_LIFETIMEBOUND
 
constexpr value_ref< const context_type > context () const &noexcept RELOCO_LIFETIMEBOUND
 
value_ref< context_type > context () &&=delete
 
value_ref< const context_type > context () const &&=delete
 
constexpr remote_container_view view (address_space_ref space, span< std::byte > scratch RELOCO_LIFETIMEBOUND, container_options options={}) &noexcept RELOCO_LIFETIMEBOUND
 
remote_container_view view (address_space_ref, span< std::byte >, container_options={}) &&=delete
 

Static Public Member Functions

static bool format_thunk (void *raw_ctx, address_space_ref space, span< std::byte > scratch, const sink &out, const container_options &opts) noexcept
 

Detailed Description

template<typename Tag, typename Dispatcher>
class microfmt::basic_remote_container< Tag, Dispatcher >

Owning typed container bound to a compile-time traits dispatcher.

The context is retained by value. Traversal operations remain compile-time trait calls; only conversion to remote_container_view introduces type erasure.

Member Typedef Documentation

◆ context_type

template<typename Tag , typename Dispatcher >
using microfmt::basic_remote_container< Tag, Dispatcher >::context_type = typename traits_type::context_type

◆ traits_type

template<typename Tag , typename Dispatcher >
using microfmt::basic_remote_container< Tag, Dispatcher >::traits_type = typename Dispatcher::traits_type

Constructor & Destructor Documentation

◆ basic_remote_container()

template<typename Tag , typename Dispatcher >
constexpr microfmt::basic_remote_container< Tag, Dispatcher >::basic_remote_container ( uintptr_t  container_addr,
context_type  context 
)
inlineconstexprnoexcept

Member Function Documentation

◆ container_address()

template<typename Tag , typename Dispatcher >
constexpr uintptr_t microfmt::basic_remote_container< Tag, Dispatcher >::container_address ( ) const
inlineconstexprnoexcept

◆ context() [1/4]

template<typename Tag , typename Dispatcher >
value_ref< context_type > microfmt::basic_remote_container< Tag, Dispatcher >::context ( ) &&
delete

◆ context() [2/4]

template<typename Tag , typename Dispatcher >
constexpr value_ref< context_type > microfmt::basic_remote_container< Tag, Dispatcher >::context ( ) &
inlineconstexprnoexcept

◆ context() [3/4]

template<typename Tag , typename Dispatcher >
value_ref< const context_type > microfmt::basic_remote_container< Tag, Dispatcher >::context ( ) const &&
delete

◆ context() [4/4]

template<typename Tag , typename Dispatcher >
constexpr value_ref< const context_type > microfmt::basic_remote_container< Tag, Dispatcher >::context ( ) const &
inlineconstexprnoexcept

◆ format_thunk()

template<typename Tag , typename Dispatcher >
static bool microfmt::basic_remote_container< Tag, Dispatcher >::format_thunk ( void *  raw_ctx,
address_space_ref  space,
span< std::byte >  scratch,
const sink &  out,
const container_options &  opts 
)
inlinestaticnoexcept

◆ view() [1/2]

template<typename Tag , typename Dispatcher >
constexpr remote_container_view microfmt::basic_remote_container< Tag, Dispatcher >::view ( address_space_ref  space,
span< std::byte > scratch  RELOCO_LIFETIMEBOUND,
container_options  options = {} 
) &
constexprnoexcept

◆ view() [2/2]

template<typename Tag , typename Dispatcher >
remote_container_view microfmt::basic_remote_container< Tag, Dispatcher >::view ( address_space_ref  ,
span< std::byte >  ,
container_options  = {} 
) &&
delete

The documentation for this class was generated from the following file: