#[derive(Debug, Clone)]
pub struct ImportDescriptor {
pub kind: ImportKind,
pub module: String,
pub names: Vec<String>, pub alias: Option<String>, }
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ImportKind {
Simple, From, Relative, }
impl ImportDescriptor {
pub fn new(module: String, kind: ImportKind) -> Self {
Self {
kind,
module,
names: Vec::new(),
alias: None,
}
}
pub fn add_name(&mut self, name: String) {
self.names.push(name);
}
pub fn set_alias(&mut self, alias: String) {
self.alias = Some(alias);
}
}