count in trace example
This commit is contained in:
parent
988764ab07
commit
8818d0c53e
@ -4,15 +4,17 @@ use radn::{
|
|||||||
flow::{comparator::*, traversible::algorithms::subset::*},
|
flow::{comparator::*, traversible::algorithms::subset::*},
|
||||||
func::*,
|
func::*,
|
||||||
mrds::trees::unbalanced::*,
|
mrds::trees::unbalanced::*,
|
||||||
rstd::tracing::*,
|
rstd::{counting::CountedInstance, tracing::*},
|
||||||
};
|
};
|
||||||
use rand::{Rng, SeedableRng};
|
use rand::{Rng, SeedableRng};
|
||||||
|
|
||||||
type TracedMonad = instances::composition::CompositionInstance<
|
type Inner = instances::composition::CompositionInstance<
|
||||||
TracedInstance,
|
TracedInstance,
|
||||||
instances::result::ResultInstance<()>,
|
instances::result::ResultInstance<()>,
|
||||||
>;
|
>;
|
||||||
|
|
||||||
|
type Outer = instances::composition::CompositionInstance<CountedInstance, Inner>;
|
||||||
|
|
||||||
trait FromSlice<R> {
|
trait FromSlice<R> {
|
||||||
type Tree;
|
type Tree;
|
||||||
type A;
|
type A;
|
||||||
@ -44,10 +46,11 @@ impl<'a, T: Monad<'a>, A: 'a + Send + Sync + Clone, R: 'a + rand::Rng> FromSlice
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let ctr: Arc<UnbalancedConstructor<TracedMonad, _>> =
|
let ctr: Arc<UnbalancedConstructor<Outer, _>> = UnbalancedConstructor::rc(Box::new(|node| {
|
||||||
UnbalancedConstructor::rc(Box::new(|node| {
|
Box::new(move || {
|
||||||
Box::new(move || TracedMonad::pure(node.clone()).after_resolution())
|
CountedInstance::pure(Inner::pure(node.clone()).after_resolution()).after_resolution()
|
||||||
}));
|
})
|
||||||
|
}));
|
||||||
let mut rng = rand::rngs::StdRng::seed_from_u64(426);
|
let mut rng = rand::rngs::StdRng::seed_from_u64(426);
|
||||||
let big: Vec<i32> = (0..(rng.gen_range(1000..2000))).collect();
|
let big: Vec<i32> = (0..(rng.gen_range(1000..2000))).collect();
|
||||||
let key = big[rng.gen_range(0..big.len())];
|
let key = big[rng.gen_range(0..big.len())];
|
||||||
@ -65,6 +68,7 @@ fn main() {
|
|||||||
None,
|
None,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
assert!(traced.value.is_ok());
|
assert!(traced.value.value.is_ok());
|
||||||
println!("{:?}", traced.render().to_vec());
|
println!("{:?}", traced.value.render().to_vec());
|
||||||
|
println!("{}", traced.count());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user