parse_sap_atom_feed/atom/
collection.rs1use super::link::AtomLink;
2use crate::{
3 deserializers::{default_sap_content_version, edm_string::to_bool},
4 xml::{default_false, default_true},
5};
6use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Serialize, Deserialize)]
11pub struct AtomCollection {
12 #[serde(
13 rename = "@creatable",
14 deserialize_with = "to_bool",
15 default = "default_true"
16 )]
17 pub is_creatable: bool,
18
19 #[serde(
20 rename = "@updatable",
21 deserialize_with = "to_bool",
22 default = "default_true"
23 )]
24 pub is_updatable: bool,
25
26 #[serde(
27 rename = "@deletable",
28 deserialize_with = "to_bool",
29 default = "default_true"
30 )]
31 pub is_deletable: bool,
32
33 #[serde(
34 rename = "@pageable",
35 deserialize_with = "to_bool",
36 default = "default_true"
37 )]
38 pub is_pageable: bool,
39
40 #[serde(
41 rename = "@searchable",
42 deserialize_with = "to_bool",
43 default = "default_false"
44 )]
45 pub is_searchable: bool,
46
47 #[serde(rename = "@content-version", default = "default_sap_content_version")]
48 pub content_version: String,
49 #[serde(rename = "@href")]
50 pub href: String,
51 pub title: String,
52 #[serde(rename = "member-title")]
53 pub member_title: String,
54 pub link: Option<AtomLink>,
55}
56
57impl std::str::FromStr for AtomCollection {
58 type Err = quick_xml::DeError;
59
60 fn from_str(s: &str) -> Result<Self, Self::Err> {
61 quick_xml::de::from_str(s)
62 }
63}