Skip to main content

rustidy_ast/expr/without_block/
index.rs

1//! Index
2
3// Imports
4use {
5	crate::{expr::{Expression, ExpressionInner}, util::Bracketed},
6	super::ExpressionWithoutBlockInner,
7	rustidy_ast_util::delimited,
8	rustidy_format::{Format, Formattable, WhitespaceFormat},
9	rustidy_parse::ParseRecursive,
10	rustidy_print::Print,
11	rustidy_util::Whitespace,
12};
13
14/// `IndexExpression`
15#[derive(PartialEq, Eq, Clone, Debug)]
16#[derive(serde::Serialize, serde::Deserialize)]
17#[derive(ParseRecursive, Formattable, Format, Print)]
18#[parse_recursive(root = ExpressionInner)]
19#[parse_recursive(into_root = ExpressionWithoutBlockInner)]
20#[parse_recursive(kind = "left")]
21pub struct IndexExpression {
22	pub expr:  Expression,
23	#[format(prefix_ws = Whitespace::REMOVE)]
24	#[format(args = delimited::FmtRemove)]
25	pub index: Bracketed<Expression>,
26}