ECSTASY
All in the name
Loading...
Searching...
No Matches
ecstasy::serialization::concepts::is_serializer Concept Reference

Concept to check if a type is a serializer. More...

#include <is_serializer.hpp>

Concept definition

template<typename S>
concept ecstasy::serialization::concepts::is_serializer = requires(S &serializer) {
requires std::derived_from<S, ISerializer>;
{ serializer.save(std::declval<int>())} -> std::same_as<S &>;
{ serializer.update(std::declval<int &>())} -> std::same_as<S &>;
{ serializer.save(std::declval<double>())} -> std::same_as<S &>;
{ serializer.update(std::declval<double &>())} -> std::same_as<S &>;
{ serializer.save(std::declval<std::string>())} -> std::same_as<S &>;
{ serializer.update(std::declval<std::string &>())} -> std::same_as<S &>;
}
Concept to check if a type is a serializer.

Detailed Description

Concept to check if a type is a serializer.

Note
This checks for the save and update methods. It don't check for the load method because it would create circular concept dependencies.
Template Parameters
SSerializer type.
Author
Andréas Leroux (andre.nosp@m.as.l.nosp@m.eroux.nosp@m.@epi.nosp@m.tech..nosp@m.eu)
Since
1.0.0 (2024-06-24)

Definition at line 35 of file is_serializer.hpp.