State management

```rust

[cfg(test)]

mod test_state{ use std::cell::RefCell;

use crate::State;

#[test]
fn set_state() {
    let a:State<i32> = State::default();    
    let b:State<i32> = State{data:Box::new(RefCell::new(200))};
    let b_state = b.get_state();    
    a.set_state(100);
    b.set_state(100);
    assert_eq!(a,b);
    &a.set_state(1000);
    assert_ne!(a.get_state(),b.get_state());

}

} ```