nom_xml/prolog/subset/entity/
entity_value.rs

1// entity_value.rs
2
3use crate::{
4    prolog::subset::markup_declaration::MarkupDeclaration, reference::Reference, Document,
5};
6
7#[derive(Clone, PartialEq, Eq)]
8pub enum EntityValue {
9    Document(Document),
10    Value(String),
11    Reference(Reference),
12    ParameterReference(Reference),
13    MarkupDecl(Box<MarkupDeclaration>),
14}
15
16impl EntityValue {
17    pub fn get_value(&self) -> Option<String> {
18        match self {
19            EntityValue::Value(value) => Some(value.clone()),
20            _ => None,
21        }
22    }
23
24    pub fn get_reference(&self) -> Option<&Reference> {
25        if let EntityValue::Reference(reference) = self {
26            Some(reference)
27        } else {
28            None
29        }
30    }
31
32    pub fn get_perameter_reference(&self) -> Option<&Reference> {
33        if let EntityValue::ParameterReference(reference) = self {
34            Some(reference)
35        } else {
36            None
37        }
38    }
39}