mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-29 18:27:37 +02:00
visitString()
takes a JsonString
This commit is contained in:
@ -68,8 +68,8 @@ class JsonSerializer : public VariantDataVisitor<size_t> {
|
||||
return bytesWritten();
|
||||
}
|
||||
|
||||
size_t visitString(const char* value, size_t n) {
|
||||
formatter_.writeString(value, n);
|
||||
size_t visitString(JsonString value) {
|
||||
formatter_.writeString(value.c_str(), value.size());
|
||||
return bytesWritten();
|
||||
}
|
||||
|
||||
|
@ -80,12 +80,14 @@ class MsgPackSerializer : public VariantDataVisitor<size_t> {
|
||||
}
|
||||
|
||||
size_t visitString(const char* value) {
|
||||
return visitString(value, strlen(value));
|
||||
return visitString(JsonString(value));
|
||||
}
|
||||
|
||||
size_t visitString(const char* value, size_t n) {
|
||||
size_t visitString(JsonString value) {
|
||||
ARDUINOJSON_ASSERT(value != NULL);
|
||||
|
||||
auto n = value.size();
|
||||
|
||||
if (n < 0x20) {
|
||||
writeByte(uint8_t(0xA0 + n));
|
||||
} else if (n < 0x100) {
|
||||
@ -98,7 +100,7 @@ class MsgPackSerializer : public VariantDataVisitor<size_t> {
|
||||
writeByte(0xDB);
|
||||
writeInteger(uint32_t(n));
|
||||
}
|
||||
writeBytes(reinterpret_cast<const uint8_t*>(value), n);
|
||||
writeBytes(reinterpret_cast<const uint8_t*>(value.c_str()), n);
|
||||
return bytesWritten();
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,7 @@ struct JsonVariantVisitor {
|
||||
return TResult();
|
||||
}
|
||||
|
||||
TResult visitString(const char*, size_t) {
|
||||
TResult visitString(JsonString) {
|
||||
return TResult();
|
||||
}
|
||||
};
|
||||
@ -72,8 +72,8 @@ class VisitorAdapter {
|
||||
return visitor_->visitFloat(value);
|
||||
}
|
||||
|
||||
result_type visitString(const char* s, size_t n) {
|
||||
return visitor_->visitString(s, n);
|
||||
result_type visitString(JsonString value) {
|
||||
return visitor_->visitString(value);
|
||||
}
|
||||
|
||||
result_type visitRawString(const char* p, size_t n) {
|
||||
|
@ -24,8 +24,8 @@ struct Comparer<T, typename enable_if<IsString<T>::value>::type>
|
||||
|
||||
explicit Comparer(T value) : rhs(value) {}
|
||||
|
||||
CompareResult visitString(const char* lhs, size_t n) {
|
||||
int i = stringCompare(adaptString(rhs), adaptString(lhs, n));
|
||||
CompareResult visitString(JsonString lhs) {
|
||||
int i = stringCompare(adaptString(rhs), adaptString(lhs));
|
||||
if (i < 0)
|
||||
return COMPARE_RESULT_GREATER;
|
||||
else if (i > 0)
|
||||
@ -143,8 +143,8 @@ struct VariantComparer : ComparerBase {
|
||||
return reverseResult(comparer);
|
||||
}
|
||||
|
||||
CompareResult visitString(const char* lhs, size_t) {
|
||||
Comparer<const char*> comparer(lhs);
|
||||
CompareResult visitString(JsonString lhs) {
|
||||
Comparer<JsonString> comparer(lhs);
|
||||
return reverseResult(comparer);
|
||||
}
|
||||
|
||||
|
@ -37,12 +37,12 @@ class VariantData {
|
||||
return visitor.visitObject(content_.asObject);
|
||||
|
||||
case VALUE_IS_LINKED_STRING:
|
||||
return visitor.visitString(content_.asLinkedString,
|
||||
strlen(content_.asLinkedString));
|
||||
return visitor.visitString(JsonString(content_.asLinkedString));
|
||||
|
||||
case VALUE_IS_OWNED_STRING:
|
||||
return visitor.visitString(content_.asOwnedString->data,
|
||||
content_.asOwnedString->length);
|
||||
return visitor.visitString(JsonString(content_.asOwnedString->data,
|
||||
content_.asOwnedString->length,
|
||||
JsonString::Copied));
|
||||
|
||||
case VALUE_IS_RAW_STRING:
|
||||
return visitor.visitRawString(content_.asOwnedString->data,
|
||||
|
@ -47,7 +47,7 @@ struct VariantDataVisitor {
|
||||
return TResult();
|
||||
}
|
||||
|
||||
TResult visitString(const char*, size_t) {
|
||||
TResult visitString(JsonString) {
|
||||
return TResult();
|
||||
}
|
||||
};
|
||||
|
Reference in New Issue
Block a user