| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Foreign.Hoppy.Generator.Std.Iterator
Description
Support for STL-style iterators. The functions in this module modify a
class to add functionality that is provided by different types of STL
iterators. In the method pseudotypes documented here, the parameter types
are Types, and all methods are nonpure.
Synopsis
- data IteratorMutability
- makeTrivialIterator :: IteratorMutability -> Maybe Type -> Class -> Class
- makeForwardIterator :: IteratorMutability -> Maybe Type -> Class -> Class
- makeBidirectionalIterator :: IteratorMutability -> Maybe Type -> Class -> Class
- makeRandomIterator :: IteratorMutability -> Maybe Type -> Type -> Class -> Class
Documentation
data IteratorMutability Source #
Whether an iterator may be used to modify the underlying collection.
Instances
| Show IteratorMutability Source # | |
Defined in Foreign.Hoppy.Generator.Std.Iterator Methods showsPrec :: Int -> IteratorMutability -> ShowS # show :: IteratorMutability -> String # showList :: [IteratorMutability] -> ShowS # | |
| Eq IteratorMutability Source # | |
Defined in Foreign.Hoppy.Generator.Std.Iterator Methods (==) :: IteratorMutability -> IteratorMutability -> Bool # (/=) :: IteratorMutability -> IteratorMutability -> Bool # | |
| Ord IteratorMutability Source # | |
Defined in Foreign.Hoppy.Generator.Std.Iterator Methods compare :: IteratorMutability -> IteratorMutability -> Ordering # (<) :: IteratorMutability -> IteratorMutability -> Bool # (<=) :: IteratorMutability -> IteratorMutability -> Bool # (>) :: IteratorMutability -> IteratorMutability -> Bool # (>=) :: IteratorMutability -> IteratorMutability -> Bool # max :: IteratorMutability -> IteratorMutability -> IteratorMutability # min :: IteratorMutability -> IteratorMutability -> IteratorMutability # | |
makeTrivialIterator :: IteratorMutability -> Maybe Type -> Class -> Class Source #
makeTrivialIteartor mutable valueTypeMaybe cls turns a class into a
trivial iterator, adding:
- A default constructor named
new. - The class features
Assignable,Copyable, andEquatable. - operator*:
getConst :: this ->; ifrefT(constTvalueType)valueTypeMaybeis present. - operator*:
get :: this ->; ifrefTvalueTypevalueTypeMaybeis present andmutableisMutable. - *iter = x:
put :: this -> valueType ->; ifvoidTvalueTypeMaybeis present andmutableisMutable.
makeForwardIterator :: IteratorMutability -> Maybe Type -> Class -> Class Source #
Turns a class into a forward iterator, including everything from
makeTrivialIterator plus the pre-increment operator:
makeBidirectionalIterator :: IteratorMutability -> Maybe Type -> Class -> Class Source #
Turns a class into a bidirectional iterator, including everything from
makeForwardIterator plus the pre-decrement operator:
makeRandomIterator :: IteratorMutability -> Maybe Type -> Type -> Class -> Class Source #
makeRandomIterator mutable valueTypeMaybe distanceType cls turns a class
into a random iterator, including everything from makeBidirectionalIterator
plus some methods:
- operator+=:
add :: this -> distanceType ->.refT(objTcls) - operator+:
plus :: this -> distanceType ->.toGcTcls - operator-=:
subtract :: distanceType ->.refT(objTcls) - operator-:
minus :: distanceType ->.toGcTcls - operator-:
difference :: this -> this -> distanceType. - operator[]:
atConst :: distanceType ->; ifrefT(constTvalueType)valueTypeMaybeis present. - operator[]:
at :: distanceType ->; ifrefTvalueTypevalueTypeMaybeis present andmutableisMutable.