#pragma once #include "level.hpp" #include "../format.hpp" #include #include namespace cruft::log { struct packet { using clock = std::chrono::high_resolution_clock; packet (level_t _level, std::string _message) : level (_level) , message (std::move (_message)) , timestamp (clock::now ()) { ; } template packet ( level_t _level, FormatT _format, ArgsT &&..._args ) : packet ( _level, cruft::format::to_string ( cruft::format::printf ( std::forward (_format) ) ( std::forward (_args)... ) ) ) { ; } level_t level; std::string message; clock::time_point timestamp; }; }