/* A graph edge. * * Author: Daniel Krebs * SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University * SPDX-License-Identifier: Apache-2.0 */ #pragma once #include #include #include namespace villas { namespace graph { class Edge { template friend class DirectedGraph; public: using Identifier = std::size_t; friend std::ostream &operator<<(std::ostream &stream, const Edge &edge) { return stream << edge.id; } bool operator==(const Edge &other) { return this->id == other.id; } Vertex::Identifier getVertexTo() const { return to; } Vertex::Identifier getVertexFrom() const { return from; } std::string toString() { std::stringstream ss; ss << *this; return ss.str(); } private: Identifier id; Vertex::Identifier from; Vertex::Identifier to; }; } // namespace graph } // namespace villas #ifndef FMT_LEGACY_OSTREAM_FORMATTER template <> class fmt::formatter : public fmt::ostream_formatter {}; #endif