1 module tagion.testbench.dart.dartinfo;
2 import std.algorithm;
3 import std.algorithm.iteration : each;
4 import std.range;
5 import std.stdio;
6 import std.traits;
7 import tagion.communication.HiRPC : HiRPC;
8 import tagion.crypto.SecureInterfaceNet : SecureNet;
9 import tagion.utils.Random;
10 
11 struct DartInfo {
12     const string dartfilename;
13     const string module_path;
14     const SecureNet net;
15     const HiRPC hirpc;
16     const string dartfilename2;
17 
18 
19     const ulong[] table = [
20         0xABB9_13ab_cdef_1234,
21         0xABB9_14ab_cdef_1234,
22         0xABB9_15ab_cdef_1234
23     ];
24 
25     const ulong[] deep_table = [
26         0xABB9_13ab_10ef_1234,
27         0xABB9_13ab_11ef_1234,
28         0xABB9_14ab_cdef_1234,
29     ];
30 
31     const enum FAKE = "$fake#";
32 
33     auto generateStates(const uint from, const uint to) {
34        auto rnd = RandomT(0x1234);
35        return recurrence!(
36             (a, n) =>
37             a[n-1].progress(rnd.value(from,to))
38         )(SequenceT(rnd.save, from));
39     }
40     SequenceT[] states;
41 
42     static auto generateFixedStates(const ulong samples) {
43         auto start = RandomT(0x1234);
44         auto rand_range = recurrence!(q{
45         a[n-1].drop(1)
46         })(start);
47 
48         return(rand_range
49                 .take(samples)
50                 .map!q{a.take(1)}
51                 .joiner);        
52     }
53 
54     ReturnType!generateFixedStates fixed_states;    
55     
56 
57 
58 }
59 
60 alias RandomT = Random!ulong;
61 alias SequenceT = Sequence!ulong;
62 
63