#include "ipc/encoder.hpp" #include #include POLYBAR_NS namespace ipc { template vector encode(const type_t type, const V& payload) { size_t total_size = HEADER_SIZE + payload.size(); std::vector data(total_size); auto* msg_header = reinterpret_cast(data.data()); std::copy(MAGIC.begin(), MAGIC.end(), msg_header->s.magic); msg_header->s.version = VERSION; msg_header->s.size = payload.size(); msg_header->s.type = type; std::copy(payload.begin(), payload.end(), data.begin() + HEADER_SIZE); return data; } vector encode(const type_t type, const vector& payload) { return encode>(type, payload); } vector encode(const type_t type, const string& payload) { return encode(type, payload); } } // namespace ipc POLYBAR_NS_END