rune/ast/expr_index.rs
use crate::ast::prelude::*;
#[test]
#[cfg(not(miri))]
fn ast_parse() {
rt::<ast::ExprIndex>("value[42]");
rt::<ast::ExprIndex>("value[value2[v + 2]]");
}
/// An index get operation.
///
/// * `<target>[<index>]`.
#[derive(Debug, TryClone, PartialEq, Eq, ToTokens, Spanned)]
#[non_exhaustive]
pub struct ExprIndex {
/// Attributes associated with expression.
#[rune(iter)]
pub attributes: Vec<ast::Attribute>,
/// The target of the index set.
pub target: Box<ast::Expr>,
/// The opening bracket.
pub open: T!['['],
/// The indexing expression.
pub index: Box<ast::Expr>,
/// The closening bracket.
pub close: T![']'],
}
expr_parse!(Index, ExprIndex, "index expression");