flams_ontology/narration/
variables.rs

1use crate::{
2    content::{
3        declarations::symbols::{ArgSpec, AssocType},
4        terms::Term,
5    },
6    uris::DocumentElementURI, Checked,
7};
8
9use super::{DocumentElement, NarrationTrait};
10
11#[derive(Debug,Clone)]
12#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13pub struct Variable {
14    pub uri: DocumentElementURI,
15    pub arity: ArgSpec,
16    pub macroname: Option<Box<str>>,
17    pub role: Box<[Box<str>]>,
18    pub tp: Option<Term>,
19    pub df: Option<Term>,
20    pub bind:bool,
21    pub assoctype: Option<AssocType>,
22    pub reordering: Option<Box<str>>,
23    pub is_seq:bool
24}
25
26impl NarrationTrait for Variable {
27    #[inline]
28    fn children(&self) -> &[DocumentElement<Checked>] {
29        &[]
30    }
31
32    #[inline]
33    fn from_element(e: &DocumentElement<Checked>) -> Option<&Self> where Self: Sized {
34        if let DocumentElement::Variable(e) = e {Some(e)} else {None}
35    }
36}