teo_parser/expr/
reference_info.rs1use crate::expr::ReferenceType;
2use crate::r#type::reference::Reference;
3use crate::r#type::Type;
4
5#[derive(Debug, Clone)]
6pub struct ReferenceInfo {
7 pub r#type: ReferenceType,
8 pub reference: Reference,
9 pub generics: Option<Vec<Type>>,
10}
11
12impl ReferenceInfo {
13
14 pub fn new(r#type: ReferenceType, reference: Reference, generics: Option<Vec<Type>>) -> Self {
15 Self { r#type, reference, generics }
16 }
17
18 pub fn r#type(&self) -> ReferenceType {
19 self.r#type
20 }
21
22 pub fn reference(&self) -> &Reference {
23 &self.reference
24 }
25
26 pub fn reference_path(&self) -> &Reference {
27 &self.reference
28 }
29
30 pub fn generics(&self) -> Option<&Vec<Type>> {
31 self.generics.as_ref()
32 }
33}