aegis.cpp
 All Classes Functions Variables Typedefs Enumerations Enumerator Friends Pages
timestamp.hpp
1 //
2 // timestamp.hpp
3 // *************
4 //
5 // Copyright (c) 2019 Sharon W (sharon at aegis dot gg)
6 //
7 // Distributed under the MIT License. (See accompanying file LICENSE)
8 //
9 
10 #pragma once
11 
12 #include "aegis/config.hpp"
13 #include <nlohmann/json.hpp>
14 
15 namespace aegis
16 {
17 
18 namespace gateway
19 {
20 
21 namespace objects
22 {
23 
26 struct timestamp
27 {
28  int64_t start;
29  int64_t end;
30 };
31 
33 inline void from_json(const nlohmann::json& j, timestamp& m)
34 {
35  if (j.count("start") && !j["start"].is_null())
36  {
37  if (j["start"].is_number_integer())
38  m.start = j["start"];
39  else if (j["start"].is_string())
40  m.start = std::stoull(j["start"].get<std::string>());
41  }
42  if (j.count("end") && !j["end"].is_null())
43  {
44  if (j["end"].is_number_integer())
45  m.end = j["end"];
46  else if (j["end"].is_string())
47  m.end = std::stoull(j["end"].get<std::string>());
48  }
49 }
51 
53 inline void to_json(nlohmann::json& j, const timestamp& m)
54 {
55  if (m.start != 0)
56  j["start"] = m.start;
57  if (m.end != 0)
58  j["end"] = m.end;
59 }
61 
62 }
63 
64 }
65 
66 }
Definition: timestamp.hpp:26