[][src]Module gluon_base::types

Re-exports

pub use self::pretty_print::Filter;
pub use self::pretty_print::TypeFormatter;

Modules

pretty_print

Structs

Alias

An alias is wrapper around Type::Alias, allowing it to be cheaply converted to a type and dereferenced to AliasRef

AliasData
AliasRef

Data for a type alias. Probably you want to use Alias instead of this directly as Alias allows for cheap conversion back into a type as well.

ArcType

A shared type which is atomically reference counted

ArgIterator
ControlVisitation

Wrapper type which allows functions to control how to traverse the members of the type

DisplayType
Field
Flags
FlagsVisitor
ForallScopeIter
Generic

FIXME Distinguish generic id's so we only need to compare them by id (currently they will get the wrong kind assigned to them otherwise)

ImplicitArgIterator
Interner
InternerVisitor
NullInterner
RowIterator
RowIteratorMut
Skolem
TypeCache
TypeFieldIterator
TypeVariable

Enums

ArgType
BuiltinType

All the builtin types of gluon

Prec
Type

The representation of gluon's types.

Traits

PrimitiveEnv

Trait which is a TypeEnv which also provides access to the type representation of some primitive types

Substitution
ToDoc
TypeContext
TypeContextAlloc
TypeEnv

Trait for values which contains typed values which can be refered by name

TypeExt
TypeVisitor
Walker
WalkerMut

Functions

arg_iter

Constructs an iterator over a functions arguments

fold_type
forall_params
implicit_arg_iter

Constructs an iterator over a functions arguments

pretty_print
remove_forall
remove_forall_mut
row_iter
row_iter_mut
split_app
translate_alias
translate_type
translate_type_with
type_field_iter
visit_type_opt
walk_move_type

Walks through a type calling f on each inner type. If f return Some the type is replaced.

walk_move_type_opt
walk_move_types
walk_type
walk_type_
walk_type_mut

Type Definitions

AppVec

SmallVec used in the Type::App constructor to avoid allocating a Vec for every applied type. If Type is changed in a way that changes its size it is likely a good idea to change the number of elements in the SmallVec so that it fills out the entire Type enum while not increasing the size of Type.

SharedInterner