MCPcopy Create free account
hub / github.com/bblanchon/ArduinoJson / Number

Class Number

src/ArduinoJson/Numbers/parseNumber.hpp:47–103  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

45};
46
47class Number {
48 NumberType type_;
49 NumberValue value_;
50
51 public:
52 Number() : type_(NumberType::Invalid) {}
53 Number(float value) : type_(NumberType::Float), value_(value) {}
54 Number(JsonInteger value) : type_(NumberType::SignedInteger), value_(value) {}
55 Number(JsonUInt value) : type_(NumberType::UnsignedInteger), value_(value) {}
56#if ARDUINOJSON_USE_DOUBLE
57 Number(double value) : type_(NumberType::Double), value_(value) {}
58#endif
59
60 template <typename T>
61 T convertTo() const {
62 switch (type_) {
63 case NumberType::Float:
64 return convertNumber<T>(value_.asFloat);
65 case NumberType::SignedInteger:
66 return convertNumber<T>(value_.asSignedInteger);
67 case NumberType::UnsignedInteger:
68 return convertNumber<T>(value_.asUnsignedInteger);
69#if ARDUINOJSON_USE_DOUBLE
70 case NumberType::Double:
71 return convertNumber<T>(value_.asDouble);
72#endif
73 default:
74 return T();
75 }
76 }
77
78 NumberType type() const {
79 return type_;
80 }
81
82 JsonInteger asSignedInteger() const {
83 ARDUINOJSON_ASSERT(type_ == NumberType::SignedInteger);
84 return value_.asSignedInteger;
85 }
86
87 JsonUInt asUnsignedInteger() const {
88 ARDUINOJSON_ASSERT(type_ == NumberType::UnsignedInteger);
89 return value_.asUnsignedInteger;
90 }
91
92 float asFloat() const {
93 ARDUINOJSON_ASSERT(type_ == NumberType::Float);
94 return value_.asFloat;
95 }
96
97#if ARDUINOJSON_USE_DOUBLE
98 double asDouble() const {
99 ARDUINOJSON_ASSERT(type_ == NumberType::Double);
100 return value_.asDouble;
101 }
102#endif
103};
104

Callers 1

parseNumberFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected