parse-sap-odata 1.4.9

Generate a pair of Rust modules from SAP V2 OData metadata
Documentation
use serde::{Deserialize, Serialize};

use crate::{
    sap_annotations::default_sap_content_version,
    sap_semantics::entity_set::SAPSemanticsEntitySet,
    utils::{de_str_to_bool, default_false, default_true},
};

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct SAPAnnotationsEntitySet {
    #[serde(rename = "@content-version", default = "default_sap_content_version")]
    pub content_version: String,
    #[serde(rename = "@semantics")]
    pub semantics: Option<SAPSemanticsEntitySet>,
    #[serde(rename = "@label")]
    pub label: Option<String>,
    #[serde(
        rename = "@creatable",
        deserialize_with = "de_str_to_bool",
        default = "default_true"
    )]
    pub is_creatable: bool,
    #[serde(
        rename = "@updatable",
        deserialize_with = "de_str_to_bool",
        default = "default_true"
    )]
    pub is_updatable: bool,
    #[serde(
        rename = "@deletable",
        deserialize_with = "de_str_to_bool",
        default = "default_true"
    )]
    pub is_deletable: bool,
    #[serde(
        rename = "@searchable",
        deserialize_with = "de_str_to_bool",
        default = "default_false"
    )]
    pub is_searchable: bool,
    #[serde(
        rename = "@pageable",
        deserialize_with = "de_str_to_bool",
        default = "default_true"
    )]
    pub is_pageable: bool,
    #[serde(
        rename = "@topable",
        deserialize_with = "de_str_to_bool",
        default = "default_true"
    )]
    pub is_topable: bool,
    #[serde(
        rename = "@countable",
        deserialize_with = "de_str_to_bool",
        default = "default_true"
    )]
    pub is_countable: bool,
    #[serde(
        rename = "@addressable",
        deserialize_with = "de_str_to_bool",
        default = "default_true"
    )]
    pub is_addressable: bool,
    #[serde(
        rename = "@requires-filter",
        deserialize_with = "de_str_to_bool",
        default = "default_false"
    )]
    pub requires_filter: bool,
    #[serde(
        rename = "@change-tracking",
        deserialize_with = "de_str_to_bool",
        default = "default_false"
    )]
    pub change_tracking_enabled: bool,
    #[serde(rename = "@maxpagesize")]
    pub max_page_size: Option<u32>,
    #[serde(rename = "@delta-link-validity")]
    pub delta_link_validity: Option<u32>,
}