{"id":26758140,"url":"https://github.com/media-io/yaserde","last_synced_at":"2025-03-28T16:01:54.096Z","repository":{"id":31757971,"uuid":"128806073","full_name":"luminvent/yaserde","owner":"luminvent","description":"Yet Another Serializer/Deserializer","archived":false,"fork":false,"pushed_at":"2024-11-05T11:02:06.000Z","size":517,"stargazers_count":188,"open_issues_count":57,"forks_count":70,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-01T23:54:18.444Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luminvent.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-09T17:00:24.000Z","updated_at":"2025-02-27T13:18:31.000Z","dependencies_parsed_at":"2024-05-29T23:06:01.761Z","dependency_job_id":"7aed1f10-e5ea-423f-b23a-e8fb6ee827bc","html_url":"https://github.com/luminvent/yaserde","commit_stats":{"total_commits":277,"total_committers":30,"mean_commits":9.233333333333333,"dds":0.6642599277978339,"last_synced_commit":"5d9e77ffcf821155cd88a61141133193d22c950b"},"previous_names":["luminvent/yaserde","media-io/yaserde"],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminvent%2Fyaserde","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminvent%2Fyaserde/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminvent%2Fyaserde/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminvent%2Fyaserde/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luminvent","download_url":"https://codeload.github.com/luminvent/yaserde/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245991561,"owners_count":20706125,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-28T16:01:41.541Z","updated_at":"2025-03-28T16:01:54.090Z","avatar_url":"https://github.com/luminvent.png","language":"Rust","funding_links":[],"categories":["Libraries","库 Libraries","库"],"sub_categories":["Encoding","编码 Encoding","编码(Encoding)","加密 Encoding"],"readme":"# yaserde \u0026emsp; [![Latest Version]][crates.io]\n\n[Latest Version]: https://img.shields.io/crates/v/yaserde.svg\n[crates.io]: https://crates.io/crates/yaserde\n\n**Yet Another Serializer/Deserializer specialized for XML**\n\n## Goal\nThis library will support XML de/ser-ializing with all specific features.\n\n## Supported types\n\n- [x] Struct\n- [x] Vec\u003cAnyType\u003e\n- [x] Enum\n- [x] Enum with complex types\n- [x] Option\n- [x] String\n- [x] bool\n- [x] number (u8, i8, u32, i32, f32, f64)\n\n## Attributes\n\n- [x] **attribute**: this field is defined as an attribute\n- [x] **default**: defines the default function to init the field\n- [x] **flatten**: Flatten the contents of the field\n- [x] **namespace**: defines the namespace of the field\n- [x] **rename**: be able to rename a field\n- [x] **root**: rename the based element. Used only at the XML root.\n- [x] **skip_serializing**: Exclude this field from the serialized output. [More details...](doc/skip_serializing.md)\n- [x] **skip_serializing_if**: Skip the serialisation for this field if the condition is true.  [More details...](doc/skip_serializing.md)\n- [x] **text**: this field match to the text content\n\n## Custom De/Ser-rializer\n\nAny type can define a custom deserializer and/or serializer.\nTo implement it, define the implementation of YaDeserialize/YaSerialize\n\n```rust\nimpl YaDeserialize for MyType {\n  fn deserialize\u003cR: Read\u003e(reader: \u0026mut yaserde::de::Deserializer\u003cR\u003e) -\u003e Result\u003cSelf, String\u003e {\n    // deserializer code\n  }\n}\n```\n\n```rust\n\nimpl YaSerialize for MyType {\n  fn serialize\u003cW: Write\u003e(\u0026self, writer: \u0026mut yaserde::ser::Serializer\u003cW\u003e) -\u003e Result\u003c(), String\u003e {\n    // serializer code\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmedia-io%2Fyaserde","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmedia-io%2Fyaserde","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmedia-io%2Fyaserde/lists"}