Implement bounded XML LLSD codec

This commit is contained in:
2026-08-09 01:08:14 +00:00
parent 2308e55671
commit 84bc31d031
14 changed files with 853 additions and 34 deletions

View File

@@ -329,33 +329,25 @@ impl OSDParser {
pub fn deserialize_llsd_xml_with_bytes(
xml_data: Vec<u8>,
) -> Result<libremetaverse_structured_data::OSD, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.Byte[])",
)
crate::xml_codec::deserialize_bytes(xml_data)
}
/// C# member: `M:LibreMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.IO.Stream)`.
pub fn deserialize_llsd_xml_with_stream(
xml_stream: Box<dyn libremetaverse_types::compat::ReadWrite + Send>,
) -> Result<libremetaverse_structured_data::OSD, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.IO.Stream)",
)
crate::xml_codec::deserialize_stream(xml_stream)
}
/// C# member: `M:LibreMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.String)`.
pub fn deserialize_llsd_xml_with_string(
xml_data: String,
) -> Result<libremetaverse_structured_data::OSD, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.String)",
)
crate::xml_codec::deserialize_string(xml_data)
}
/// C# member: `M:LibreMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.Xml.XmlReader)`.
pub fn deserialize_llsd_xml_with_xml_reader(
xml_data: libremetaverse_structured_data::xml::Reader,
) -> Result<libremetaverse_structured_data::OSD, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.Xml.XmlReader)",
)
crate::xml_codec::deserialize_reader(xml_data)
}
/// C# member: `M:LibreMetaverse.StructuredData.OSDParser.EscapeCharacter(System.String,System.Char)`.
pub fn escape_character(
@@ -454,9 +446,7 @@ impl OSDParser {
pub fn serialize_llsd_inner_xml_string(
data: libremetaverse_structured_data::OSD,
) -> Result<String, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.StructuredData.OSDParser.SerializeLLSDInnerXmlString(LibreMetaverse.StructuredData.OSD)",
)
crate::xml_codec::serialize_inner(data)
}
/// C# member: `M:LibreMetaverse.StructuredData.OSDParser.SerializeLLSDNotation(LibreMetaverse.StructuredData.OSD)`.
pub fn serialize_llsd_notation(
@@ -495,26 +485,20 @@ impl OSDParser {
pub fn serialize_llsd_xml_bytes(
data: libremetaverse_structured_data::OSD,
) -> Result<Vec<u8>, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.StructuredData.OSDParser.SerializeLLSDXmlBytes(LibreMetaverse.StructuredData.OSD)",
)
crate::xml_codec::serialize_bytes(data)
}
/// C# member: `M:LibreMetaverse.StructuredData.OSDParser.SerializeLLSDXmlElement(System.Xml.XmlWriter,LibreMetaverse.StructuredData.OSD)`.
pub fn serialize_llsd_xml_element(
writer: libremetaverse_structured_data::xml::Writer,
data: libremetaverse_structured_data::OSD,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.StructuredData.OSDParser.SerializeLLSDXmlElement(System.Xml.XmlWriter,LibreMetaverse.StructuredData.OSD)",
)
crate::xml_codec::serialize_element(writer, data)
}
/// C# member: `M:LibreMetaverse.StructuredData.OSDParser.SerializeLLSDXmlString(LibreMetaverse.StructuredData.OSD)`.
pub fn serialize_llsd_xml_string(
data: libremetaverse_structured_data::OSD,
) -> Result<String, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.StructuredData.OSDParser.SerializeLLSDXmlString(LibreMetaverse.StructuredData.OSD)",
)
crate::xml_codec::serialize_string(data)
}
/// C# member: `M:LibreMetaverse.StructuredData.OSDParser.SkipWhiteSpace(System.IO.Stream)`.
pub fn skip_white_space(