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

Method asFloat

src/ArduinoJson/Variant/VariantData.hpp:194–236  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

192
193 template <typename T>
194 T asFloat(const ResourceManager* resources) const {
195 static_assert(is_floating_point<T>::value, "T must be a floating point");
196#if ARDUINOJSON_USE_EXTENSIONS
197 auto extension = getExtension(resources);
198#else
199 (void)resources; // silence warning
200#endif
201 const char* str = nullptr;
202 switch (type_) {
203 case VariantType::Boolean:
204 return static_cast<T>(content_.asBoolean);
205 case VariantType::Uint32:
206 return static_cast<T>(content_.asUint32);
207 case VariantType::Int32:
208 return static_cast<T>(content_.asInt32);
209#if ARDUINOJSON_USE_LONG_LONG
210 case VariantType::Uint64:
211 return static_cast<T>(extension->asUint64);
212 case VariantType::Int64:
213 return static_cast<T>(extension->asInt64);
214#endif
215 case VariantType::TinyString:
216 str = content_.asTinyString;
217 break;
218 case VariantType::LinkedString:
219 str = content_.asLinkedString;
220 break;
221 case VariantType::OwnedString:
222 str = content_.asOwnedString->data;
223 break;
224 case VariantType::Float:
225 return static_cast<T>(content_.asFloat);
226#if ARDUINOJSON_USE_DOUBLE
227 case VariantType::Double:
228 return static_cast<T>(extension->asDouble);
229#endif
230 default:
231 return 0.0;
232 }
233
234 ARDUINOJSON_ASSERT(str != nullptr);
235 return parseNumber<T>(str);
236 }
237
238 template <typename T>
239 T asIntegral(const ResourceManager* resources) const {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected