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