--- a/src/basics.h Sat Jun 11 14:30:30 2022 +0300 +++ b/src/basics.h Sat Jun 11 15:20:24 2022 +0300 @@ -20,6 +20,7 @@ #include <algorithm> #include <cmath> #include <compare> +#include <deque> #include <memory> #include <optional> #include <set> @@ -184,7 +185,7 @@ struct TypeValue { T value; - auto operator<=>(TypeValue other) const = default; + auto operator<=>(const TypeValue& other) const = default; }; template<typename T, typename R> @@ -323,3 +324,13 @@ value += element; return value; } + +template<typename T> +struct GraphEdge +{ + T from; + T to; +}; + +template<typename T> +using Graph = std::deque<GraphEdge<T>>;