owlish/owl/datatypes/constructors/
data_union_of.rs1use super::DatatypeDefinitionConstructor;
2use crate::owl::{Annotation, DataPropertyIRI};
3
4#[derive(Debug, Clone, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
5pub struct DataUnionOf {
6 #[serde(rename = "dataPropertyIRI")]
7 pub data_property_iri: DataPropertyIRI,
8 #[serde(rename = "datatype")]
9 pub datatype: Box<DatatypeDefinitionConstructor>,
10 #[serde(rename = "annotations")]
11 pub annotations: Vec<Annotation>,
12}
13
14impl DataUnionOf {
15 pub fn new(
16 iri: DataPropertyIRI,
17 datatype: Box<DatatypeDefinitionConstructor>,
18 annotations: Vec<Annotation>,
19 ) -> Self {
20 Self {
21 data_property_iri: iri,
22 datatype,
23 annotations,
24 }
25 }
26}
27
28impl From<DataUnionOf> for Box<DatatypeDefinitionConstructor> {
29 fn from(c: DataUnionOf) -> Self {
30 DatatypeDefinitionConstructor::DataUnionOf(c).into()
31 }
32}
33impl From<DataUnionOf> for DatatypeDefinitionConstructor {
34 fn from(c: DataUnionOf) -> Self {
35 DatatypeDefinitionConstructor::DataUnionOf(c)
36 }
37}
38
39#[cfg(feature = "wasm")]
40mod wasm {
41 use wasm_bindgen::prelude::wasm_bindgen;
42
43 #[wasm_bindgen(typescript_custom_section)]
44 const WASM_API: &'static str = r#"
45export type DataUnionOf = {
46 dataPropertyIRI: IRI,
47 datatype: DatatypeDefinitionConstructor,
48 annotations: Array<Annotation>,
49};
50"#;
51}