use crate::types::Span;
#[derive(Debug, Clone)]
pub struct OidAssignment {
pub components: Vec<OidComponent>,
pub span: Span,
}
#[derive(Debug, Clone)]
pub enum OidComponent {
Name { name: String, span: Span },
Number { value: u32, span: Span },
NamedNumber {
name: String,
number: u32,
span: Span,
},
QualifiedName {
module: String,
name: String,
span: Span,
},
QualifiedNamedNumber {
module: String,
name: String,
number: u32,
span: Span,
},
}
impl OidComponent {
pub fn span(&self) -> Span {
match self {
OidComponent::Name { span, .. }
| OidComponent::Number { span, .. }
| OidComponent::NamedNumber { span, .. }
| OidComponent::QualifiedName { span, .. }
| OidComponent::QualifiedNamedNumber { span, .. } => *span,
}
}
}