owlish/owl/datatypes/constructors/
data_union_of.rs

1use 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}