scarf_syntax/declarations/
declaration_ranges.rs1use crate::*;
7
8#[derive(Clone, Debug, PartialEq)]
9pub enum UnpackedDimension<'a> {
10 UnpackedRange(
11 Box<(
12 Metadata<'a>, ConstantRange<'a>,
14 Metadata<'a>, )>,
16 ),
17 UnpackedExpression(
18 Box<(
19 Metadata<'a>, ConstantExpression<'a>,
21 Metadata<'a>, )>,
23 ),
24}
25
26#[derive(Clone, Debug, PartialEq)]
27pub enum PackedDimension<'a> {
28 PackedRange(
29 Box<(
30 Metadata<'a>, ConstantRange<'a>,
32 Metadata<'a>, )>,
34 ),
35 UnsizedDimension(Box<UnsizedDimension<'a>>),
36}
37
38#[derive(Clone, Debug, PartialEq)]
39pub enum AssociativeDimension<'a> {
40 Data(
41 Box<(
42 Metadata<'a>, DataType<'a>,
44 Metadata<'a>, )>,
46 ),
47 Star(
48 Box<(
49 Metadata<'a>, Metadata<'a>, Metadata<'a>, )>,
53 ),
54}
55
56#[derive(Clone, Debug, PartialEq)]
57pub enum VariableDimension<'a> {
58 UnsizedDimension(Box<UnsizedDimension<'a>>),
59 UnpackedDimension(Box<UnpackedDimension<'a>>),
60 AssociativeDimension(Box<AssociativeDimension<'a>>),
61 QueueDimension(Box<QueueDimension<'a>>),
62}
63
64#[derive(Clone, Debug, PartialEq)]
65pub struct QueueDimension<'a>(
66 pub Metadata<'a>, pub Metadata<'a>, pub Option<(Metadata<'a>, ConstantExpression<'a>)>,
69 pub Metadata<'a>, );
71
72#[derive(Clone, Debug, PartialEq)]
73pub struct UnsizedDimension<'a>(
74 pub Metadata<'a>, pub Metadata<'a>, );