barretenberg
Loading...
Searching...
No Matches
concepts.hpp
1#pragma once
2
3struct DoNothing {
4 void operator()(auto...) {}
5};
6namespace msgpack_concepts {
7template <typename T>
8concept HasMsgPack = requires(T t, DoNothing nop) { t.msgpack(nop); };
9
10template <typename T>
11concept HasMsgPackSchema = requires(const T t, DoNothing nop) { t.msgpack_schema(nop); };
12
13template <typename T>
14concept HasMsgPackPack = requires(T t, DoNothing nop) { t.msgpack_pack(nop); };
15template <typename T, typename... Args>
16concept MsgpackConstructible = requires(T object, Args... args) { T{ args... }; };
17
18} // namespace msgpack_concepts
Definition: concepts.hpp:14
Definition: concepts.hpp:11
Definition: concepts.hpp:8
Definition: concepts.hpp:16
Definition: concepts.hpp:3