di 0.1.0
Loading...
Searching...
No Matches
deserialize_string.h
Go to the documentation of this file.
1#pragma once
2
5#include "di/io/prelude.h"
9
10namespace di::serialization {
11namespace detail {
12 template<typename T>
13 struct DeserializeStringFunction {
14 template<typename Format, typename... Args,
17 requires(concepts::Deserializable<T, D>)
18 constexpr auto operator()(Format format, container::StringView view, Args&&... args) const -> R {
19 auto deserializer = serialization::deserializer(format, StringReader<container::StringView> { view },
20 util::forward<Args>(args)...);
22 }
23 };
24}
25
26template<typename T>
27constexpr inline auto deserialize_string = detail::DeserializeStringFunction<meta::RemoveCVRef<T>> {};
28}
29
30namespace di {
32}
string::StringViewImpl< string::Utf8Encoding > StringView
Definition string_view.h:12
decltype(serialization::deserializer(util::declval< T >(), util::declval< Reader >(), util::declval< Args >()...)) Deserializer
Definition deserialize.h:54
meta::LikeExpected< meta::ReaderResult< void, decltype(util::declval< S >().reader())>, T > DeserializeResult
Definition deserialize.h:58
Definition base64.h:16
constexpr auto deserialize_string
Definition deserialize_string.h:27
constexpr auto deserializer
Definition deserialize.h:41
constexpr auto deserialize
Definition deserialize.h:178
Definition any_storable.h:9