From 8818d0c53ea63149c88afaeef22e0a5f5178a710 Mon Sep 17 00:00:00 2001 From: timofey <tim@ongoteam.yaconnect.com> Date: Sun, 15 Oct 2023 11:32:57 +0000 Subject: [PATCH] count in trace example --- examples/trace.rs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/examples/trace.rs b/examples/trace.rs index 40fa733..c61f990 100644 --- a/examples/trace.rs +++ b/examples/trace.rs @@ -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()); }