use crate::ast::{AliasSpecItem, Ast, NodeId};
use proc_macro2::Span;
use std::rc::Rc;
#[derive(Debug)]
pub struct AliasSpec {
id: NodeId,
items: Vec<Rc<AliasSpecItem>>,
is_comma_used: Option<bool>,
}
impl Ast for AliasSpec {
fn id(&self) -> NodeId {
self.id
}
fn span(&self) -> Span {
self.items
.first()
.map(|item| item.span())
.unwrap_or_else(Span::call_site)
}
}
impl AliasSpec {
pub fn new(id: NodeId, items: Vec<Rc<AliasSpecItem>>, is_comma_used: Option<bool>) -> Self {
Self {
id,
items,
is_comma_used,
}
}
pub fn items(&self) -> &[Rc<AliasSpecItem>] {
&self.items
}
pub fn is_comma_used(&self) -> Option<bool> {
self.is_comma_used
}
}