Implement JSON and Protobuf OSD codecs

This commit is contained in:
2026-08-09 01:30:59 +00:00
parent 84bc31d031
commit 6d02db8a9a
15 changed files with 1365 additions and 47 deletions

View File

@@ -273,17 +273,13 @@ impl OSDParser {
pub fn deserialize_json_with_stream(
json: Box<dyn libremetaverse_types::compat::ReadWrite + Send>,
) -> Result<libremetaverse_structured_data::OSD, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.StructuredData.OSDParser.DeserializeJson(System.IO.Stream)",
)
crate::json_codec::deserialize_stream(json)
}
/// C# member: `M:LibreMetaverse.StructuredData.OSDParser.DeserializeJson(System.String)`.
pub fn deserialize_json_with_string(
json: String,
) -> Result<libremetaverse_structured_data::OSD, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.StructuredData.OSDParser.DeserializeJson(System.String)",
)
crate::json_codec::deserialize_string(json)
}
/// C# member: `M:LibreMetaverse.StructuredData.OSDParser.DeserializeLLSDBinary(System.Byte[])`.
pub fn deserialize_llsd_binary_with_bytes(
@@ -313,17 +309,13 @@ impl OSDParser {
pub fn deserialize_llsd_protobuf_with_bytes(
data: Vec<u8>,
) -> Result<libremetaverse_structured_data::OSD, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.StructuredData.OSDParser.DeserializeLLSDProtobuf(System.Byte[])",
)
crate::protobuf::deserialize_bytes(data)
}
/// C# member: `M:LibreMetaverse.StructuredData.OSDParser.DeserializeLLSDProtobuf(System.IO.Stream)`.
pub fn deserialize_llsd_protobuf_with_stream(
stream: Box<dyn libremetaverse_types::compat::ReadWrite + Send>,
) -> Result<libremetaverse_structured_data::OSD, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.StructuredData.OSDParser.DeserializeLLSDProtobuf(System.IO.Stream)",
)
crate::protobuf::deserialize_stream(stream)
}
/// C# member: `M:LibreMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.Byte[])`.
pub fn deserialize_llsd_xml_with_bytes(
@@ -412,9 +404,7 @@ impl OSDParser {
osd: libremetaverse_structured_data::OSD,
preserve_defaults: Option<bool>,
) -> Result<String, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.StructuredData.OSDParser.SerializeJsonString(LibreMetaverse.StructuredData.OSD,System.Boolean)",
)
crate::json_codec::serialize(osd, preserve_defaults)
}
/// C# member: `M:LibreMetaverse.StructuredData.OSDParser.SerializeLLSDBinary(LibreMetaverse.StructuredData.OSD)`.
pub fn serialize_llsd_binary_with_osd(
@@ -477,9 +467,7 @@ impl OSDParser {
osd: libremetaverse_structured_data::OSD,
prepend_header: Option<bool>,
) -> Result<Vec<u8>, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.StructuredData.OSDParser.SerializeLLSDProtobuf(LibreMetaverse.StructuredData.OSD,System.Boolean)",
)
crate::protobuf::serialize(osd, prepend_header)
}
/// C# member: `M:LibreMetaverse.StructuredData.OSDParser.SerializeLLSDXmlBytes(LibreMetaverse.StructuredData.OSD)`.
pub fn serialize_llsd_xml_bytes(