ref_wrapper 0.3.0

Wrapper of dynamically borrowed data.
Documentation
mod common;

pub use common::*;
use core::cell::RefCell;
use ref_wrapper::{RefWrap, RefWrapMut};

#[test]
fn for_ref_wrap() {
    let src = RefCell::new(samples());

    let result = RefWrap::new(src.borrow(), |x| x.iter());

    assert!(result.eq(samples().iter()));
}

#[test]
fn for_ref_wrap_mut() {
    let src = RefCell::new(samples());

    let result = RefWrapMut::new(src.borrow_mut(), |x| x.iter_mut());

    result.for_each(|x| *x += 1);
    let edited = Vec::from_iter(src.borrow().iter().cloned());
    let expected = Vec::from_iter(samples().iter().map(|x| x + 1));
    assert_eq!(edited, expected);
}