parse_sap_odata/edmx/data_services/schema/association/
mod.rs

1use serde::{Deserialize, Serialize};
2
3use end::End;
4use referential_constraint::ReferentialConstraint;
5
6use crate::sap_annotations::default_sap_content_version;
7
8pub mod end;
9#[cfg(feature = "parser")]
10pub mod metadata;
11pub mod referential_constraint;
12
13// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
14/// Represents an `<Association>` tag
15///
16/// # Child Nodes
17/// Exactly 2 `1:1 End` relationships<br>
18/// `0:1 ReferentialConstraint`
19#[derive(Clone, Debug, Serialize, Ord, Eq, PartialOrd, PartialEq, Deserialize)]
20#[serde(rename_all = "PascalCase")]
21pub struct Association {
22    #[serde(rename = "@Name")]
23    pub name: String,
24    #[serde(rename = "@content-version", default = "default_sap_content_version")]
25    pub sap_content_version: String,
26    #[serde(rename = "End")]
27    pub ends: [End; 2],
28    pub referential_constraint: Option<ReferentialConstraint>,
29}
30
31// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
32#[cfg(test)]
33pub mod unit_tests;