syn_utils/type_parser/
mod.rs1mod primitives;
2mod rust_type;
3pub use rust_type::*;
4mod type_info;
5
6pub use primitives::*;
7pub use type_info::*;
8
9use crate::*;
10
11#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12pub struct Ref {
13 pub lifetime: Option<Lifetime>,
14 pub kind: RefKind,
15}
16
17impl ToTokens for Ref {
18 fn to_tokens(&self, tokens: &mut TokenStream2) {
19 let lifetime = &self.lifetime;
20 let output = match &self.kind {
21 RefKind::Ref => quote! { & #lifetime },
22 RefKind::MutRef => quote! { & #lifetime mut },
23 };
24
25 tokens.extend(output);
26 }
27}
28
29#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
30pub enum RefKind {
31 Ref,
32 MutRef,
33}
34
35#[derive(Debug, Clone, PartialEq, Eq, Hash)]
36pub struct Array {
37 pub len: Expr,
38 pub inner: Rc<TypeInfo>,
39}