+
+inline ostream &operator << (ostream &out, const socket_or_port_t sop) {
+ if (holds_alternative<string>(sop)) {
+ out << get<string>(sop);
+ } else {
+ out << ":" << get<int>(sop);
+ }
+ return out;
+}
+
+inline ostream &operator << (ostream &out, const Server &server) {
+ out << "Server{binary=" << server.getBinary() << ",pid=" << server.getPid() << ",conn=" << server.getSocketOrPort() << "}";
+ return out;
+}