Rules / Types, classes & roles / domain-specific

Supplier::Preserving Reference

Cached live Supply factory

What it is #

Routines #

Signatures are reproduced from the documentation, including their declared return types. A routine listed here is part of the type's published interface; whether Raku++ implements it is a separate question, answered by the examples below.

method new #

method new()

The Supplier constructor.

Examples, run three ways #

Every example below comes from the official documentation, together with the output that documentation asserts. Each was then executed by Rakudo and by Raku++ when this page was built. Where the three agree, one result is shown; where they do not, all three are — because which of them is wrong is exactly the information worth having.

3 no-output

class Supplier::Preserving is Supplier { }

Not executed: the documentation states no expected output for this example.

my $p = Supplier::Preserving.new;
start for ^3 {
    $p.emit($_);
    LAST {
        say „done after { now - BEGIN now}s“;
        $p.done;
    }
}
sleep 2;
react {
    whenever $p.Supply { $_.say; }
    whenever Promise.in(2) { done }
}
say „also done after { now - BEGIN now }s“

Not executed: the documentation states no expected output for this example.

done after 0.0638467s
0
1
2
also done after 4.0534119s

Not executed: the documentation states no expected output for this example.