di 0.1.0
Loading...
Searching...
No Matches
di::ErasedString Class Reference

#include <di/container/string/erased_string.h>

Inheritance diagram for di::ErasedString:
di::container::string::ConstantStringInterface< ErasedString, string::Utf8Encoding >

Public Types

enum class  ThunkOp { Move , Destroy }
using Encoding = string::Utf8Encoding
using ThunkFunction = void (*)(ErasedString* dest, ErasedString* src, ThunkOp op)

Public Member Functions

constexpr auto encoding () const
constexpr auto span () const
constexpr ErasedString (Span< c8 const > data={}, void *state0=nullptr, void *state1=nullptr, void *state2=nullptr, ThunkFunction thunk=nullptr)
constexpr ErasedString (ErasedString &&other)
template<typename T>
requires (!concepts::RemoveCVRefSameAs<T, ErasedString> && requires { into_erased_string(util::declval<T>()); })
constexpr ErasedString (T &&value)
constexpr auto operator= (ErasedString &&other) -> ErasedString &
constexpr ~ErasedString ()
Public Member Functions inherited from di::container::string::ConstantStringInterface< ErasedString, string::Utf8Encoding >
constexpr auto size () const -> usize requires(encoding::Contiguous< Enc >)
constexpr auto operator[] (usize index) const -> CodePoint requires(encoding::Contiguous< Enc >)
constexpr auto at (usize index) const -> Optional< CodePoint > requires(encoding::Contiguous< Enc >)
constexpr auto size_bytes () const -> usize
constexpr auto size_code_units () const -> usize
constexpr auto empty () const -> bool
constexpr auto data () const
constexpr auto begin () const
constexpr auto end () const
constexpr auto front () const
constexpr auto back () const
constexpr auto starts_with (CodePoint code_point) const -> bool
constexpr auto ends_with (CodePoint code_point) const -> bool
constexpr auto contains (CodePoint code_point) const -> bool
constexpr auto substr (Iterator first, Optional< Iterator > last={}) const
constexpr auto find (CodePoint code_point) const
constexpr auto rfind (CodePoint code_point) const
constexpr auto find_first_of (CodePoint code_point) const
constexpr auto find_first_not_of (CodePoint code_point) const
constexpr auto find_last_of (CodePoint code_point) const
constexpr auto find_last_not_of (CodePoint code_point) const
constexpr auto view () const
constexpr auto iterator_at_offset (usize index) const
constexpr auto unicode_code_points () const

Public Attributes

Span< c8 const > m_data
void * m_state [3] {}
ThunkFunction const m_thunk { nullptr }

Member Typedef Documentation

◆ Encoding

using di::container::ErasedString::Encoding = string::Utf8Encoding

◆ ThunkFunction

Member Enumeration Documentation

◆ ThunkOp

Enumerator
Move 
Destroy 

Constructor & Destructor Documentation

◆ ErasedString() [1/3]

di::container::ErasedString::ErasedString ( Span< c8 const > data = {},
void * state0 = nullptr,
void * state1 = nullptr,
void * state2 = nullptr,
ThunkFunction thunk = nullptr )
inlineexplicitconstexpr

◆ ErasedString() [2/3]

di::container::ErasedString::ErasedString ( ErasedString && other)
inlineconstexpr

◆ ErasedString() [3/3]

template<typename T>
requires (!concepts::RemoveCVRefSameAs<T, ErasedString> && requires { into_erased_string(util::declval<T>()); })
di::container::ErasedString::ErasedString ( T && value)
inlineconstexpr

◆ ~ErasedString()

di::container::ErasedString::~ErasedString ( )
inlineconstexpr

Member Function Documentation

◆ encoding()

auto di::container::ErasedString::encoding ( ) const
inlineconstexpr

◆ operator=()

auto di::container::ErasedString::operator= ( ErasedString && other) ->ErasedString &
inlineconstexpr

◆ span()

auto di::container::ErasedString::span ( ) const
inlineconstexpr

Member Data Documentation

◆ m_data

Span<c8 const> di::container::ErasedString::m_data

◆ m_state

void* di::container::ErasedString::m_state[3] {}

◆ m_thunk

ThunkFunction const di::container::ErasedString::m_thunk { nullptr }

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