1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
mod annotation;
mod type_annotation;

pub use annotation::*;
pub use type_annotation::*;

use crate::reader::decoding::*;
use crate::{mutf8, MStr};

use super::FromAttribute;

dec_structure! {
    pub struct AnnotationDefault<'input> into {
        value: ElementValue<'input>,
    }
}

impl<'input> FromAttribute<'input> for AnnotationDefault<'input> {
    const NAME: &'static MStr = mutf8!("AnnotationDefault");
}

dec_structure! {
    pub struct RuntimeInvisibleAnnotations<'input> into {
        annotations: DecodeMany<'input, Annotation<'input>, u16>,
    }
}

impl<'input> FromAttribute<'input> for RuntimeInvisibleAnnotations<'input> {
    const NAME: &'static MStr = mutf8!("RuntimeInvisibleAnnotations");
}

dec_structure! {
    pub struct RuntimeInvisibleParameterAnnotations<'input> into {
        annotations: DecodeMany<'input, Annotation<'input>, u8>,
    }
}

impl<'input> FromAttribute<'input> for RuntimeInvisibleParameterAnnotations<'input> {
    const NAME: &'static MStr = mutf8!("RuntimeInvisibleParameterAnnotations");
}

dec_structure! {
    pub struct RuntimeInvisibleTypeAnnotations<'input> into {
        annotations: DecodeMany<'input, TypeAnnotation<'input>, u16>,
    }
}

impl<'input> FromAttribute<'input> for RuntimeInvisibleTypeAnnotations<'input> {
    const NAME: &'static MStr = mutf8!("RuntimeInvisibleTypeAnnotations");
}

dec_structure! {
    pub struct RuntimeVisibleAnnotations<'input> into {
        annotations: DecodeMany<'input, Annotation<'input>, u16>,
    }
}

impl<'input> FromAttribute<'input> for RuntimeVisibleAnnotations<'input> {
    const NAME: &'static MStr = mutf8!("RuntimeVisibleAnnotations");
}

dec_structure! {
    pub struct RuntimeVisibleParameterAnnotations<'input> into {
        annotations: DecodeMany<'input, Annotation<'input>, u8>,
    }
}

impl<'input> FromAttribute<'input> for RuntimeVisibleParameterAnnotations<'input> {
    const NAME: &'static MStr = mutf8!("RuntimeVisibleParameterAnnotations");
}

dec_structure! {
    pub struct RuntimeVisibleTypeAnnotations<'input> into {
        annotations: DecodeMany<'input, TypeAnnotation<'input>, u16>,
    }
}

impl<'input> FromAttribute<'input> for RuntimeVisibleTypeAnnotations<'input> {
    const NAME: &'static MStr = mutf8!("RuntimeVisibleTypeAnnotations");
}