nom_xml/prolog/subset/entity/
entity_definition.rs

1use crate::{
2    prolog::{external_id::ExternalID, textdecl::TextDecl},
3    Name,
4};
5
6use super::entity_value::EntityValue;
7
8#[derive(Clone, PartialEq, Eq)]
9pub enum EntityDefinition {
10    EntityValue(EntityValue),
11    External {
12        id: ExternalID,
13        n_data: Option<Name>,
14        text_decl: Option<TextDecl>,
15    },
16}
17
18impl EntityDefinition {
19    pub fn get_entity_value(&self) -> Option<&EntityValue> {
20        if let EntityDefinition::EntityValue(value) = self {
21            Some(value)
22        } else {
23            None
24        }
25    }
26
27    pub fn get_external_id(&self) -> Option<&ExternalID> {
28        if let EntityDefinition::External { id, .. } = self {
29            Some(id)
30        } else {
31            None
32        }
33    }
34}