microfmt
Zero-allocation C++ formatting for constrained environments
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions
address_space.hpp File Reference

Type-erased remote address-space access and remote string/object views. More...

#include "../microfmt.hpp"
#include "../reloco.hpp"
#include "../scratch_allocator.hpp"
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <string_view>
#include <type_traits>
#include <utility>
Include dependency graph for address_space.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  microfmt::string_chunk
 
struct  microfmt::detail::has_address_space_write_bytes< Tag, typename >
 
struct  microfmt::detail::has_address_space_write_bytes< Tag, std::void_t< decltype(address_space_traits< Tag >::write_bytes(std::declval< value_ref< const typename address_space_traits< Tag >::context_type > >(), std::declval< uintptr_t >(), std::declval< const void * >(), std::declval< size_t >()))> >
 
struct  microfmt::detail::has_stateless_address_space_write_bytes< Tag, typename >
 
struct  microfmt::detail::has_stateless_address_space_write_bytes< Tag, std::void_t< decltype(address_space_traits< Tag >::write_bytes(std::declval< uintptr_t >(), std::declval< const void * >(), std::declval< size_t >()))> >
 
struct  microfmt::local_space_tag
 Static customization point describing a remote address space. More...
 
struct  microfmt::address_space_traits< local_space_tag >
 Traits for the built-in local_space_tag. More...
 
class  microfmt::address_space_ref
 Type-erased, two-word handle to a remote address space. More...
 
struct  microfmt::address_space_ref::vtable
 Virtual table of address-space operations. More...
 
class  microfmt::address_space< Tag, false >
 
class  microfmt::address_space< Tag, true >
 
class  microfmt::remote_string_view
 Streaming view of a remote NUL-terminated string. More...
 
class  microfmt::remote_ref< T >
 Lazily-loaded reference to a trivially-copyable remote object. More...
 
struct  microfmt::formatter< remote_string_view >
 Formatter rendering a remote_string_view. More...
 
struct  microfmt::formatter< remote_ref< T > >
 Formatter that lazily loads and renders a remote object via remote_ref. More...
 

Namespaces

namespace  microfmt
 
namespace  microfmt::detail
 

Enumerations

enum class  microfmt::address_space_error {
  microfmt::invalid_handle , microfmt::invalid_address , microfmt::invalid_buffer , microfmt::empty_buffer ,
  microfmt::read_failed , microfmt::write_unsupported , microfmt::write_failed
}
 
enum class  microfmt::remote_load_error {
  microfmt::null_address , microfmt::scratch_too_small , microfmt::scratch_misaligned , microfmt::invalid_address_space ,
  microfmt::read_failed
}
 

Functions

RELOCO_BEGIN_UNSAFE_CODE constexpr uintptr_t microfmt::detail::add_address_offset (uintptr_t address, ptrdiff_t offset) noexcept
 

Detailed Description

Type-erased remote address-space access and remote string/object views.