14template<concepts::Encoding Enc>
17 ,
public meta::EnableView<StringViewImpl<Enc>>
18 ,
public meta::EnableBorrowedContainer<StringViewImpl<Enc>>
19 ,
public util::OwnedType<StringViewImpl<Enc>, StringImpl<Enc>> {
31 , m_size(static_cast<
CodeUnit const*>(
end) - m_data)
34 template<concepts::detail::ConstantString Other>
44 template<concepts::ContiguousIterator It, concepts::SizedSentinelFor<It> Sent>
50 template<concepts::ContiguousContainer Con>
61 template<concepts::ContiguousIterator It, concepts::SizedSentinelFor<It> Sent>
66 template<concepts::ContiguousContainer Con>
73 constexpr auto span()
const {
return Span { m_data, m_size }; }
74 constexpr auto encoding() const -> Enc {
return m_encoding; }
80 template<concepts::SameAs<types::Tag<
into_erased_
string>> T, concepts::SameAs<StringViewImpl> S>
83 return ErasedString({ self.data(), self.size_code_units() + 1 });
88 [[no_unique_address]] Enc m_encoding;
Definition erased_string.h:21
Definition constant_string_interface.h:33
constexpr auto size() const -> usize requires(encoding::Contiguous< Enc >)
Definition constant_string_interface.h:42
constexpr auto data() const
Definition constant_string_interface.h:67
constexpr auto begin() const
Definition constant_string_interface.h:69
constexpr auto end() const
Definition constant_string_interface.h:70
Definition string_view_impl_forward_declaration.h:7
constexpr void replace_end(Iterator new_end)
Definition string_view_impl.h:77
constexpr StringViewImpl(encoding::AssumeValid, Con &&container, Enc encoding={})
Definition string_view_impl.h:68
constexpr StringViewImpl(Other &&other)
Definition string_view_impl.h:37
Enc Encoding
Definition string_view_impl.h:21
constexpr auto span() const
Definition string_view_impl.h:73
meta::EncodingCodeUnit< Enc > CodeUnit
Definition string_view_impl.h:22
constexpr StringViewImpl(Iterator begin, Iterator end, Enc encoding={})
Definition string_view_impl.h:29
constexpr friend auto tag_invoke(T, S self) -> ErasedString
Definition string_view_impl.h:82
auto operator=(StringViewImpl const &) -> StringViewImpl &=default
StringViewImpl(StringViewImpl const &)=default
constexpr StringViewImpl(CodeUnit const *data, size_t count, Enc encoding={})
Definition string_view_impl.h:40
meta::EncodingIterator< Enc > Iterator
Definition string_view_impl.h:24
meta::EncodingCodePoint< Enc > CodePoint
Definition string_view_impl.h:23
constexpr StringViewImpl(encoding::AssumeValid, It it, Sent sent, Enc encoding={})
Definition string_view_impl.h:63
constexpr StringViewImpl(encoding::AssumeValid, CodeUnit const *data, size_t count, Enc encoding={})
Definition string_view_impl.h:58
constexpr void replace_begin(Iterator new_begin)
Definition string_view_impl.h:76
constexpr auto encoding() const -> Enc
Definition string_view_impl.h:74
constexpr StringViewImpl(It it, Sent sent, Enc encoding={})
Definition string_view_impl.h:47
constexpr StringViewImpl(Con &&container, Enc encoding={})
Definition string_view_impl.h:55
Definition span_forward_declaration.h:10
Definition borrowed_container.h:8
Definition container_of.h:9
Definition operations.h:99
Definition sized_container.h:8
Definition constant_string.h:8
Definition constant_string_interface.h:31
constexpr auto data(concepts::detail::ConstantString auto const &string)
Definition string_data.h:6
constexpr auto begin(concepts::detail::ConstantString auto const &string)
Definition string_begin.h:6
constexpr auto end(concepts::detail::ConstantString auto const &string)
Definition string_end.h:6
constexpr auto size(Str const &string) -> size_t
Definition string_size.h:9
constexpr auto count
Definition count.h:37
constexpr auto to_address
Definition to_address.h:22
Definition encoding.h:234