Skip to main content

rue_types/
types.rs

1mod alias;
2mod apply;
3mod atom;
4mod function;
5mod generic;
6mod pair;
7mod structs;
8mod unions;
9
10pub use alias::*;
11pub use apply::*;
12pub use atom::*;
13pub use function::*;
14pub use generic::*;
15pub use pair::*;
16pub use structs::*;
17pub use unions::*;
18
19use id_arena::Id;
20
21pub type TypeId = Id<Type>;
22
23#[derive(Debug, Clone)]
24pub enum Type {
25    Unresolved,
26    Generic(Generic),
27    Any,
28    Never,
29    Ref(TypeId),
30    Atom(Atom),
31    Pair(Pair),
32    Alias(Alias),
33    Struct(Struct),
34    Function(FunctionType),
35    Apply(Apply),
36    Union(Union),
37}