sysml_parser/
parsed_member.rs1use crate::{ParsedAttribute, ParsedBlock, ParsedImport, ParsedPackage, ParsedPort};
4use sysml_model::{Element, Namespace};
5
6#[doc(hidden)]
7#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
8pub enum ParsedMember {
9 Import(ParsedImport),
10 Package(ParsedPackage),
11 BlockUsage(ParsedBlock),
12 AttributeUsage(ParsedAttribute),
13 PortUsage(ParsedPort),
14}
15
16impl Namespace for ParsedMember {}
17
18impl Element for ParsedMember {
19 fn name(&self) -> Option<&str> {
20 use ParsedMember::*;
21 match self {
22 Import(import) => import.name(),
23 Package(package) => package.name(),
24 BlockUsage(usage) => usage.name(),
25 AttributeUsage(usage) => usage.name(),
26 PortUsage(usage) => usage.name(),
27 }
28 }
29
30 fn short_name(&self) -> Option<&str> {
31 use ParsedMember::*;
32 match self {
33 Import(import) => import.short_name(),
34 Package(package) => package.short_name(),
35 BlockUsage(usage) => usage.short_name(),
36 AttributeUsage(usage) => usage.short_name(),
37 PortUsage(usage) => usage.short_name(),
38 }
39 }
40}