[−][src]Trait gluon_base::types::TypeVisitor
Associated Types
type Context: TypeContext<Id, T>
Required methods
Loading content...Provided methods
fn make(&mut self, typ: Type<Id, T>) -> T
fn make_types(&mut self, typ: impl IntoIterator<Item = T>) -> T::Types
fn visit(&mut self, typ: &T) -> Option<T> where
T: TypePtr<Id = Id> + Clone,
Id: Clone,
T::SpannedId: Clone,
T: TypePtr<Id = Id> + Clone,
Id: Clone,
T::SpannedId: Clone,
fn forall(&mut self, params: T::Generics, typ: T) -> T
fn app(&mut self, id: T, args: T::Types) -> T
Implementors
impl<'i, F, V, Id, T> TypeVisitor<Id, T> for InternerVisitor<'i, ControlVisitation<F>, V> where
F: FnMut(&mut V, &T) -> Option<T>,
Id: Clone,
T::SpannedId: Clone,
T: TypeExt<Id = Id>,
V: TypeContext<Id, T>,
T::Types: Clone,
T::Generics: Clone,
T::Fields: Clone,
[src]
F: FnMut(&mut V, &T) -> Option<T>,
Id: Clone,
T::SpannedId: Clone,
T: TypeExt<Id = Id>,
V: TypeContext<Id, T>,
T::Types: Clone,
T::Generics: Clone,
T::Fields: Clone,
type Context = V
fn context(&mut self) -> &mut Self::Context
[src]
fn visit(&mut self, typ: &T) -> Option<T> where
T: TypePtr<Id = Id> + Clone,
Id: Clone,
[src]
T: TypePtr<Id = Id> + Clone,
Id: Clone,
impl<'i, F, V, Id, T> TypeVisitor<Id, T> for InternerVisitor<'i, F, V> where
F: FnMut(&mut V, &T) -> Option<T>,
Id: Clone,
T::SpannedId: Clone,
T: TypeExt<Id = Id, Types = AppVec<T>>,
V: TypeContext<Id, T>,
T::Generics: FromIterator<Generic<Id>> + Clone,
T::Fields: FromIterator<Field<T::SpannedId, T>> + Clone,
[src]
F: FnMut(&mut V, &T) -> Option<T>,
Id: Clone,
T::SpannedId: Clone,
T: TypeExt<Id = Id, Types = AppVec<T>>,
V: TypeContext<Id, T>,
T::Generics: FromIterator<Generic<Id>> + Clone,
T::Fields: FromIterator<Field<T::SpannedId, T>> + Clone,
type Context = V
fn context(&mut self) -> &mut Self::Context
[src]
fn visit(&mut self, typ: &T) -> Option<T> where
T: TypePtr<Id = Id> + Clone,
Id: Clone,
[src]
T: TypePtr<Id = Id> + Clone,
Id: Clone,
impl<F, Id, T> TypeVisitor<Id, T> for ControlVisitation<F> where
F: FnMut(&T) -> Option<T>,
Id: Clone,
T::SpannedId: Clone,
T: TypeExt<Id = Id> + From<(Type<Id, T>, Flags)> + From<Type<Id, T>>,
T::Types: FromIterator<T> + Clone,
T::Generics: FromIterator<Generic<Id>> + Clone,
T::Fields: FromIterator<Field<T::SpannedId, T>> + Clone,
[src]
F: FnMut(&T) -> Option<T>,
Id: Clone,
T::SpannedId: Clone,
T: TypeExt<Id = Id> + From<(Type<Id, T>, Flags)> + From<Type<Id, T>>,
T::Types: FromIterator<T> + Clone,
T::Generics: FromIterator<Generic<Id>> + Clone,
T::Fields: FromIterator<Field<T::SpannedId, T>> + Clone,
type Context = NullInterner
fn context(&mut self) -> &mut Self::Context
[src]
fn visit(&mut self, typ: &T) -> Option<T> where
T: TypePtr<Id = Id> + From<Type<Id, T>> + Clone,
Id: Clone,
[src]
T: TypePtr<Id = Id> + From<Type<Id, T>> + Clone,
Id: Clone,
impl<F, Id, T> TypeVisitor<Id, T> for FlagsVisitor<F> where
F: FnMut(&T) -> Option<T>,
Id: Clone,
T::SpannedId: Clone,
T: TypeExt<Id = Id> + From<(Type<Id, T>, Flags)> + From<Type<Id, T>>,
T::Types: FromIterator<T> + Clone,
T::Generics: FromIterator<Generic<Id>> + Clone,
T::Fields: FromIterator<Field<T::SpannedId, T>> + Clone,
[src]
F: FnMut(&T) -> Option<T>,
Id: Clone,
T::SpannedId: Clone,
T: TypeExt<Id = Id> + From<(Type<Id, T>, Flags)> + From<Type<Id, T>>,
T::Types: FromIterator<T> + Clone,
T::Generics: FromIterator<Generic<Id>> + Clone,
T::Fields: FromIterator<Field<T::SpannedId, T>> + Clone,
type Context = NullInterner
fn context(&mut self) -> &mut Self::Context
[src]
fn visit(&mut self, typ: &T) -> Option<T> where
T: TypePtr<Id = Id> + From<Type<Id, T>> + Clone,
Id: Clone,
[src]
T: TypePtr<Id = Id> + From<Type<Id, T>> + Clone,
Id: Clone,
impl<Id, T, F: ?Sized> TypeVisitor<Id, T> for F where
F: FnMut(&T) -> Option<T>,
Id: Clone,
T::SpannedId: Clone,
T: TypeExt<Id = Id> + From<(Type<Id, T>, Flags)> + From<Type<Id, T>>,
T::Types: FromIterator<T> + Clone,
T::Generics: FromIterator<Generic<Id>> + Clone,
T::Fields: FromIterator<Field<T::SpannedId, T>> + Clone,
[src]
F: FnMut(&T) -> Option<T>,
Id: Clone,
T::SpannedId: Clone,
T: TypeExt<Id = Id> + From<(Type<Id, T>, Flags)> + From<Type<Id, T>>,
T::Types: FromIterator<T> + Clone,
T::Generics: FromIterator<Generic<Id>> + Clone,
T::Fields: FromIterator<Field<T::SpannedId, T>> + Clone,