32template<
typename Self, concepts::Encoding Enc>
39 constexpr auto self()
const -> Self
const& {
return static_cast<Self const&
>(*this); }
51 return begin()[index];
57 if (index >=
size()) {
60 return begin()[index];
77 template<concepts::ContainerCompatible<CodePo
int> Con>
85 template<concepts::ContainerCompatible<CodePo
int> Con>
93 template<concepts::ContainerCompatible<CodePo
int> Con>
106 auto last = [&] -> Iterator {
112 if (!first.has_value()) {
113 return StringViewImpl<Enc> {};
115 return substr(*first, last);
118 constexpr auto find(CodePoint code_point)
const {
return string::find(self(), code_point); }
120 template<concepts::ContainerCompatible<CodePo
int> Con>
128 template<concepts::ContainerCompatible<CodePo
int> Con>
136 template<concepts::ContainerCompatible<CodePo
int> Con>
146 template<concepts::ContainerCompatible<CodePo
int> Con>
154 template<concepts::ContainerCompatible<CodePo
int> Con>
162 template<concepts::ContainerCompatible<CodePo
int> Con>
175 template<concepts::detail::ConstantString Other>
177 constexpr friend auto operator==(Self
const& a, Other
const& b) ->
bool {
181 template<concepts::detail::ConstantString Other>
183 constexpr friend auto operator<=>(Self
const& a, Other
const& b) {
Definition constant_string_interface.h:33
constexpr auto front() const
Definition constant_string_interface.h:72
constexpr auto find_first_not_of(CodePoint code_point) const
Definition constant_string_interface.h:142
constexpr friend auto operator<=>(Self const &a, Other const &b)
Definition constant_string_interface.h:183
constexpr auto operator[](usize index) const -> CodePoint requires(encoding::Contiguous< Enc >)
Definition constant_string_interface.h:48
constexpr auto find_first_not_of(Con &&container) const
Definition constant_string_interface.h:148
constexpr auto size() const -> usize requires(encoding::Contiguous< Enc >)
Definition constant_string_interface.h:42
constexpr auto rfind(CodePoint code_point) const
Definition constant_string_interface.h:126
constexpr auto size_code_units() const -> usize
Definition constant_string_interface.h:64
constexpr auto find_last_of(CodePoint code_point) const
Definition constant_string_interface.h:152
constexpr auto data() const
Definition constant_string_interface.h:67
constexpr auto starts_with(Con &&container) const -> bool
Definition constant_string_interface.h:79
constexpr auto iterator_at_offset(usize index) const
Definition constant_string_interface.h:170
constexpr auto substr(usize offset, Optional< usize > count={}) const
Definition constant_string_interface.h:102
constexpr auto unicode_code_points() const
Definition constant_string_interface.h:172
constexpr auto starts_with(CodePoint code_point) const -> bool
Definition constant_string_interface.h:75
constexpr auto find_last_not_of(Con &&container) const
Definition constant_string_interface.h:164
constexpr auto find_last_not_of(CodePoint code_point) const
Definition constant_string_interface.h:160
constexpr auto find_first_of(Con &&container) const
Definition constant_string_interface.h:138
constexpr auto find_first_of(CodePoint code_point) const
Definition constant_string_interface.h:134
constexpr auto back() const
Definition constant_string_interface.h:73
constexpr auto begin() const
Definition constant_string_interface.h:69
constexpr auto find(Con &&container) const
Definition constant_string_interface.h:122
constexpr auto at(usize index) const -> Optional< CodePoint > requires(encoding::Contiguous< Enc >)
Definition constant_string_interface.h:54
constexpr auto ends_with(Con &&container) const -> bool
Definition constant_string_interface.h:87
constexpr auto substr(Iterator first, Optional< Iterator > last={}) const
Definition constant_string_interface.h:99
constexpr auto find(CodePoint code_point) const
Definition constant_string_interface.h:118
constexpr friend auto tag_invoke(types::Tag< container::reconstruct >, InPlaceType< Self >, Iterator first, Iterator last) -> StringViewImpl< Enc >
Definition constant_string_interface.h:187
constexpr auto size_bytes() const -> usize
Definition constant_string_interface.h:63
constexpr auto view() const
Definition constant_string_interface.h:168
constexpr auto end() const
Definition constant_string_interface.h:70
constexpr auto contains(Con &&container) const -> bool
Definition constant_string_interface.h:95
constexpr auto contains(CodePoint code_point) const -> bool
Definition constant_string_interface.h:91
constexpr auto ends_with(CodePoint code_point) const -> bool
Definition constant_string_interface.h:83
constexpr auto find_last_of(Con &&container) const
Definition constant_string_interface.h:156
constexpr auto empty() const -> bool
Definition constant_string_interface.h:65
constexpr auto rfind(Con &&container) const
Definition constant_string_interface.h:130
Definition string_view_impl_forward_declaration.h:7
Definition optional_forward_declaration.h:5
Definition forward_container.h:8
Definition constant_string_interface.h:31
constexpr auto data(concepts::detail::ConstantString auto const &string)
Definition string_data.h:6
constexpr auto contains(Str const &string, meta::EncodingCodePoint< Str > code_point) -> bool
Definition string_contains.h:12
constexpr auto find_last_not_of(Str const &string, meta::EncodingCodePoint< Str > code_point)
Definition string_find_last_not_of.h:11
constexpr auto substr(Str const &string, meta::EncodingIterator< Enc > first, Optional< meta::EncodingIterator< Enc > > last={})
Definition string_substr.h:9
constexpr auto begin(concepts::detail::ConstantString auto const &string)
Definition string_begin.h:6
constexpr auto find_last_of(Str const &string, meta::EncodingCodePoint< Str > code_point)
Definition string_find_last_of.h:11
constexpr auto find(Str const &string, meta::EncodingCodePoint< Str > code_point)
Definition string_find.h:11
constexpr auto ends_with(Str const &string, meta::EncodingCodePoint< Str > code_point) -> bool
Definition string_ends_with.h:11
constexpr auto unicode_code_points(concepts::detail::ConstantString auto const &string)
Definition string_unicode_code_points.h:6
constexpr auto find_first_of(Str const &string, meta::EncodingCodePoint< Str > code_point)
Definition string_find_first_of.h:11
constexpr auto starts_with(Str const &string, meta::EncodingCodePoint< Str > code_point) -> bool
Definition string_starts_with.h:11
constexpr auto size_code_units(concepts::detail::ConstantString auto const &string) -> size_t
Definition string_size_code_units.h:6
constexpr auto end(concepts::detail::ConstantString auto const &string)
Definition string_end.h:6
constexpr auto back(concepts::detail::ConstantString auto const &string)
Definition string_back.h:8
constexpr auto size(Str const &string) -> size_t
Definition string_size.h:9
constexpr auto front(concepts::detail::ConstantString auto const &string)
Definition string_front.h:8
constexpr auto rfind(Str const &string, meta::EncodingCodePoint< Str > code_point)
Definition string_rfind.h:11
constexpr auto find_first_not_of(Str const &string, meta::EncodingCodePoint< Str > code_point)
Definition string_find_first_not_of.h:11
constexpr auto compare(S const &s, T const &t)
Definition string_compare.h:11
constexpr auto empty(concepts::detail::ConstantString auto const &string) -> size_t
Definition string_empty.h:6
constexpr auto equal(S const &s, T const &t)
Definition string_equal.h:11
constexpr auto iterator_at_offset(concepts::detail::ConstantString auto const &string, size_t index)
Definition string_iterator_at_offset.h:6
constexpr auto count
Definition count.h:37
size_t usize
Definition integers.h:33
di::meta::Decay< decltype(T)> Tag
Definition tag_invoke.h:28
Definition in_place_type.h:5