Refresh release imports and tutorial

This commit is contained in:
vczh
2026-06-05 00:46:06 -07:00
parent 79e26702e9
commit 63e46d3547
18 changed files with 6777 additions and 2816 deletions
+55
View File
@@ -1477,6 +1477,31 @@ API
JsonPrint(node, writer, formatting);
});
}
void JsonNodeListSerializer::Serialize(Ptr<Parser> parser, const SourceType& source, DestType& dest)
{
auto array = Ptr(new JsonArray);
for (auto&& package : source)
{
array->items.Add(package);
}
dest = JsonToString(array);
}
void JsonNodeListSerializer::Deserialize(Ptr<Parser> parser, const DestType& source, SourceType& dest)
{
#define ERROR_MESSAGE_PREFIX L"vl::glr::json::JsonNodeListSerializer::Deserialize(Ptr<Parser>, const WString&, SourceType&)#"
auto value = JsonParse(source, *parser.Obj());
auto array = value.Cast<JsonArray>();
CHECK_ERROR(array, ERROR_MESSAGE_PREFIX L"The serialized channel package should be a JsonArray.");
dest.Clear();
for (auto&& package : array->items)
{
dest.Add(package);
}
#undef ERROR_MESSAGE_PREFIX
}
}
}
}
@@ -7720,6 +7745,36 @@ Utility
return result;
}
/***********************************************************************
XmlElementListSerializer
***********************************************************************/
void XmlElementListSerializer::Serialize(Ptr<Parser> parser, const SourceType& source, DestType& dest)
{
auto array = Ptr(new XmlElement);
array->name.value = L"Array";
for (auto&& element : source)
{
array->subNodes.Add(element);
}
dest = GenerateToStream([&](StreamWriter& writer)
{
XmlPrint(array, writer);
});
}
void XmlElementListSerializer::Deserialize(Ptr<Parser> parser, const DestType& source, SourceType& dest)
{
auto array = XmlParseElement(source, *parser.Obj());
auto elements = XmlGetElements(array);
dest.Clear();
for (auto&& element : elements)
{
dest.Add(element);
}
}
/***********************************************************************
XmlElementWriter
***********************************************************************/