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.