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

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

Inheritance diagram for di::ErasedString:
[legend]

Public Types

using Encoding = string::Utf8Encoding
 

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 starts_with (Con &&container) const -> bool
 
constexpr auto ends_with (CodePoint code_point) const -> bool
 
constexpr auto ends_with (Con &&container) const -> bool
 
constexpr auto contains (CodePoint code_point) const -> bool
 
constexpr auto contains (Con &&container) const -> bool
 
constexpr auto substr (Iterator first, Optional< Iterator > last={}) const
 
constexpr auto substr (usize offset, Optional< usize > count={}) const
 
constexpr auto find (CodePoint code_point) const
 
constexpr auto find (Con &&container) const
 
constexpr auto rfind (CodePoint code_point) const
 
constexpr auto rfind (Con &&container) const
 
constexpr auto find_first_of (CodePoint code_point) const
 
constexpr auto find_first_of (Con &&container) const
 
constexpr auto find_first_not_of (CodePoint code_point) const
 
constexpr auto find_first_not_of (Con &&container) const
 
constexpr auto find_last_of (CodePoint code_point) const
 
constexpr auto find_last_of (Con &&container) const
 
constexpr auto find_last_not_of (CodePoint code_point) const
 
constexpr auto find_last_not_of (Con &&container) const
 
constexpr auto view () const
 
constexpr auto iterator_at_offset (usize index) const
 
constexpr auto unicode_code_points () const
 

Protected Types

enum class  ThunkOp { Move , Destroy }
 
using ThunkFunction = void (*)(ErasedString* dest, ErasedString const* src, ThunkOp op)
 

Protected Member Functions

constexpr ErasedString (ThunkFunction thunk)
 

Protected 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

using di::container::ErasedString::ThunkFunction = void (*)(ErasedString* dest, ErasedString const* src, ThunkOp op)
protected

Member Enumeration Documentation

◆ ThunkOp

enum class di::container::ErasedString::ThunkOp
strongprotected
Enumerator
Move 
Destroy 

Constructor & Destructor Documentation

◆ ErasedString() [1/4]

di::container::ErasedString::ErasedString ( ThunkFunction thunk)
inlineexplicitconstexprprotected

◆ ErasedString() [2/4]

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

◆ ErasedString() [3/4]

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

◆ ErasedString() [4/4]

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
protected

◆ m_state

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

◆ m_thunk

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

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