diff options
| author | Ben Culkin <scorpress@gmail.com> | 2020-11-21 23:11:43 -0500 |
|---|---|---|
| committer | Ben Culkin <scorpress@gmail.com> | 2020-11-21 23:11:43 -0500 |
| commit | eda9a86d8d48758e9982cfffd470c3b38a0a4b0b (patch) | |
| tree | fbe073650de751486725844ed41dfe70986a914d /dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java | |
| parent | b5c2fb1ed923d43412694729b4445a66fa9f47fc (diff) | |
Make dice generic
Convert dice from dealing exclusively with ints, to deal with objects of
arbitrary types
Diffstat (limited to 'dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java')
| -rw-r--r-- | dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java b/dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java new file mode 100644 index 0000000..7c58e72 --- /dev/null +++ b/dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java @@ -0,0 +1,25 @@ +package bjc.dicelang.neodice.diepool; + +import java.util.*; +import java.util.function.*; +import java.util.stream.*; + +import bjc.dicelang.neodice.*; + +public class ExpandDiePool<SideType> implements IDiePool<SideType> { + private final IDie<SideType> contained; + + private final BiFunction<IDie<SideType>, Random, Stream<SideType>> expander; + + public ExpandDiePool(IDie<SideType> contained, + BiFunction<IDie<SideType>, Random, Stream<SideType>> expander) { + this.contained = contained; + this.expander = expander; + } + + + @Override + public Stream<SideType> roll(Random rng) { + return expander.apply(contained, rng); + } +} |
