View source code
Display the source code in std/concurrency.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Class std.concurrency.Generator
A Generator is a Fiber that periodically returns values of type T to the caller via yield. This is represented as an InputRange.
class Generator(T)
;
Constructors
Name | Description |
---|---|
this
(fn)
|
Initializes a generator object which is associated with a static D function. The function will be called once to prepare the range for iteration. |
this
(fn, sz)
|
Initializes a generator object which is associated with a static D function. The function will be called once to prepare the range for iteration. |
this
(fn, sz, guardPageSize)
|
Initializes a generator object which is associated with a static D function. The function will be called once to prepare the range for iteration. |
this
(dg)
|
Initializes a generator object which is associated with a dynamic D function. The function will be called once to prepare the range for iteration. |
this
(dg, sz)
|
Initializes a generator object which is associated with a dynamic D function. The function will be called once to prepare the range for iteration. |
this
(dg, sz, guardPageSize)
|
Initializes a generator object which is associated with a dynamic D function. The function will be called once to prepare the range for iteration. |
Properties
Name | Type | Description |
---|---|---|
empty [get]
|
bool | Returns true if the generator is empty. |
front [get]
|
T | Returns the most recently generated value by shallow copy. |
Methods
Name | Description |
---|---|
moveFront
()
|
Returns the most recently generated value without executing a copy contructor. Will not compile for element types defining a postblit, because Generator does not return by reference. |
popFront
()
|
Obtains the next value from the underlying function. |
factory
(classname)
|
Create instance of class specified by the fully qualified name classname. The class must either have no constructors or have a default constructor. |
opCmp
(o)
|
Compare with another Object obj. |
opEquals
(o)
|
Test whether this is equal to o .
The default implementation only compares by identity (using the is operator).
Generally, overrides for opEquals should attempt to compare objects by their contents.
|
toHash
()
|
Compute hash function for Object. |
toString
()
|
Convert Object to a human readable string. |
Example
auto tid = spawn({
int i;
while (i < 9)
i = receiveOnly!int;
ownerTid .send(i * 2);
});
auto r = new Generator!int({
foreach (i; 1 .. 10)
yield(i);
});
foreach (e; r)
tid .send(e);
writeln(receiveOnly!int); // 18
Authors
Sean Kelly, Alex Rønne Petersen, Martin Nowak
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.