scarf_syntax/declarations/
declaration_ranges.rs1use crate::*;
6
7#[derive(Clone, Debug, PartialEq)]
8pub enum UnpackedDimension<'a> {
9 UnpackedRange(
10 Box<(
11 Metadata<'a>, ConstantRange<'a>,
13 Metadata<'a>, )>,
15 ),
16 UnpackedExpression(
17 Box<(
18 Metadata<'a>, ConstantExpression<'a>,
20 Metadata<'a>, )>,
22 ),
23}
24
25#[derive(Clone, Debug, PartialEq)]
26pub enum PackedDimension<'a> {
27 PackedRange(
28 Box<(
29 Metadata<'a>, ConstantRange<'a>,
31 Metadata<'a>, )>,
33 ),
34 UnsizedDimension(Box<UnsizedDimension<'a>>),
35}
36
37#[derive(Clone, Debug, PartialEq)]
38pub enum AssociativeDimension<'a> {
39 Data(
40 Box<(
41 Metadata<'a>, DataType<'a>,
43 Metadata<'a>, )>,
45 ),
46 Star(
47 Box<(
48 Metadata<'a>, Metadata<'a>, Metadata<'a>, )>,
52 ),
53}
54
55#[derive(Clone, Debug, PartialEq)]
56pub enum VariableDimension<'a> {
57 UnsizedDimension(Box<UnsizedDimension<'a>>),
58 UnpackedDimension(Box<UnpackedDimension<'a>>),
59 AssociativeDimension(Box<AssociativeDimension<'a>>),
60 QueueDimension(Box<QueueDimension<'a>>),
61}
62
63#[derive(Clone, Debug, PartialEq)]
64pub struct QueueDimension<'a>(
65 pub Metadata<'a>, pub Metadata<'a>, pub Option<(Metadata<'a>, ConstantExpression<'a>)>,
68 pub Metadata<'a>, );
70
71#[derive(Clone, Debug, PartialEq)]
72pub struct UnsizedDimension<'a>(
73 pub Metadata<'a>, pub Metadata<'a>, );