flams_ontology/narration/
variables.rs1use 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}