62 template<
typename T, std::enable_if_t<irsol::traits::is_type_in_variant_v<T, InMessage>,
int> = 0>
65 if constexpr(std::is_same_v<T, Assignment>) {
67 }
else if constexpr(std::is_same_v<T, Inquiry>) {
69 }
else if constexpr(std::is_same_v<T, Command>) {
std::variant< Assignment, Inquiry, Command > InMessage
Variant type representing any incoming message.
InMessageKind
Represents the type of an incoming message.
Common portability and diagnostic macros for the irsol library.
#define IRSOL_MISSING_TEMPLATE_SPECIALIZATION(T, funcNameLiteral)
Emits a compile-time error when no template specialization is available.
Represents an error response message from the server.
InMessageKind source
The kind of input message that triggered the error.
std::string identifier
The identifier related to the failed operation (e.g., the variable or command name).
std::string description
A descriptive message explaining the cause of the error.
static Error from(const T &msg, const std::string &description)
Creates an error from a specific incoming message type.
std::string toString() const
Converts the error to a human-readable string.
Template metaprogramming traits for type introspection in the irsol library.
Core type definitions for networking, time handling, and protocol values used throughout the irsol li...
Definitions and utilities for incoming and outgoing protocol messages.