parse_sap_odata/sap_annotations/
entity_set.rs

1use serde::{Deserialize, Serialize};
2
3use crate::{
4    sap_annotations::default_sap_content_version,
5    sap_semantics::entity_set::SAPSemanticsEntitySet,
6    utils::{de_str_to_bool, default_false, default_true},
7};
8
9// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
10#[derive(Debug, Serialize, Deserialize)]
11#[serde(rename_all = "PascalCase")]
12pub struct SAPAnnotationsEntitySet {
13    #[serde(rename = "@content-version", default = "default_sap_content_version")]
14    pub content_version: String,
15    #[serde(rename = "@semantics")]
16    pub semantics: Option<SAPSemanticsEntitySet>,
17    #[serde(rename = "@label")]
18    pub label: Option<String>,
19    #[serde(
20        rename = "@creatable",
21        deserialize_with = "de_str_to_bool",
22        default = "default_true"
23    )]
24    pub is_creatable: bool,
25    #[serde(
26        rename = "@updatable",
27        deserialize_with = "de_str_to_bool",
28        default = "default_true"
29    )]
30    pub is_updatable: bool,
31    #[serde(
32        rename = "@deletable",
33        deserialize_with = "de_str_to_bool",
34        default = "default_true"
35    )]
36    pub is_deletable: bool,
37    #[serde(
38        rename = "@searchable",
39        deserialize_with = "de_str_to_bool",
40        default = "default_false"
41    )]
42    pub is_searchable: bool,
43    #[serde(
44        rename = "@pageable",
45        deserialize_with = "de_str_to_bool",
46        default = "default_true"
47    )]
48    pub is_pageable: bool,
49    #[serde(
50        rename = "@topable",
51        deserialize_with = "de_str_to_bool",
52        default = "default_true"
53    )]
54    pub is_topable: bool,
55    #[serde(
56        rename = "@countable",
57        deserialize_with = "de_str_to_bool",
58        default = "default_true"
59    )]
60    pub is_countable: bool,
61    #[serde(
62        rename = "@addressable",
63        deserialize_with = "de_str_to_bool",
64        default = "default_true"
65    )]
66    pub is_addressable: bool,
67    #[serde(
68        rename = "@requires-filter",
69        deserialize_with = "de_str_to_bool",
70        default = "default_false"
71    )]
72    pub requires_filter: bool,
73    #[serde(
74        rename = "@change-tracking",
75        deserialize_with = "de_str_to_bool",
76        default = "default_false"
77    )]
78    pub change_tracking_enabled: bool,
79    #[serde(rename = "@maxpagesize")]
80    pub max_page_size: Option<u32>,
81    #[serde(rename = "@delta-link-validity")]
82    pub delta_link_validity: Option<u32>,
83}