Module chalk_ir::cast

source ·
Expand description

Upcasts, to avoid writing out wrapper types.



  • An iterator that casts each element to some other type.


  • The Cast trait is used to make annoying upcasts between logically equivalent types that imply wrappers. For example, one could convert a DomainGoal into a Goal by doing:
  • The “helper” trait for cast that actually implements the transformations. You can also use this if you want to have functions that take (e.g.) an impl CastTo<Goal<_>> or something like that.
  • An iterator adapter that casts each element we are iterating over to some other type.