Program Listing for File TopoNodeOutput.hpp¶
↰ Return to documentation for file (include/netuit/topology/TopoNodeOutput.hpp)
#pragma once
#ifndef NETUIT_TOPOLOGY_TOPONODEOUTPUT_HPP_INCLUDE
#define NETUIT_TOPOLOGY_TOPONODEOUTPUT_HPP_INCLUDE
#include <iostream>
#include <stddef.h>
#include <utility>
#include "../../uitsl/utility/print_utils.hpp"
namespace netuit {
class TopoNodeOutput {
size_t edge_id;
public:
TopoNodeOutput() = default;
TopoNodeOutput(const size_t edge_id_)
: edge_id(edge_id_)
{ ; }
size_t GetEdgeID() const { return edge_id; }
std::string ToString() const {
std::stringstream ss;
ss << uitsl::format_member(
"size_t edge_id",
edge_id
);
return ss.str();
}
bool operator==(const TopoNodeOutput& other) const {
return edge_id == other.edge_id;
}
friend std::ostream& operator<<(std::ostream& os, const TopoNodeOutput& node) {
os << node.edge_id << " ";
return os;
}
};
} // namespace netuit
namespace std {
template <>
struct hash<netuit::TopoNodeOutput> {
std::size_t operator()(const netuit::TopoNodeOutput& k) const {
return std::hash<size_t>()(k.GetEdgeID());
}
};
} // namespace std
#endif // #ifndef NETUIT_TOPOLOGY_TOPONODEOUTPUT_HPP_INCLUDE