use crate::ast::{Ast, LoopAlias, LoopSourceValueList, NodeId};
use proc_macro2::Span;
use std::rc::Rc;
#[derive(Debug, Clone)]
pub struct LoopSpecItem {
id: NodeId,
alias: Rc<LoopAlias>,
list: Rc<LoopSourceValueList>,
span: Span,
}
impl LoopSpecItem {
pub fn new(
id: NodeId,
alias: Rc<LoopAlias>,
list: Rc<LoopSourceValueList>,
span: Span,
) -> Self {
Self {
id,
alias,
list,
span,
}
}
pub fn alias(&self) -> Rc<LoopAlias> {
self.alias.clone()
}
pub fn list(&self) -> Rc<LoopSourceValueList> {
self.list.clone()
}
}
impl Ast for LoopSpecItem {
fn id(&self) -> NodeId {
self.id
}
fn span(&self) -> Span {
self.span
}
}