use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct ImportRelation {
pub importer: String,
pub imported: String,
pub symbols: Vec<String>,
pub is_wildcard: bool,
pub alias: Option<String>,
}
impl ImportRelation {
pub fn new(importer: impl Into<String>, imported: impl Into<String>) -> Self {
Self {
importer: importer.into(),
imported: imported.into(),
symbols: Vec::new(),
is_wildcard: false,
alias: None,
}
}
pub fn with_symbols(mut self, symbols: Vec<String>) -> Self {
self.symbols = symbols;
self
}
pub fn wildcard(mut self) -> Self {
self.is_wildcard = true;
self
}
pub fn with_alias(mut self, alias: impl Into<String>) -> Self {
self.alias = Some(alias.into());
self
}
}