rw_cell
provides the ability to securely write data from one location of application and read it from another
even if Writer and Reader located in different threads without copying/cloning and blocking access to data.
```rust fn main() { let (w0, mut r) = rw_cell::mwsr::cell(vec!["Ukraine"; 1000]);
let w1 = r.get_writer();
let w2 = r.get_writer();
let w3 = r.get_writer();
let w4 = r.get_writer();
let w5 = r.get_writer();
std::thread::spawn(move || loop {
w0.write(vec!["Slovakia"; 1001])
});
std::thread::spawn(move || loop {
w1.write(vec!["Estonia"; 1002])
});
std::thread::spawn(move || loop {
w2.write(vec!["Czechia"; 1003])
});
std::thread::spawn(move || loop {
w3.write(vec!["United Kingdom"; 1004])
});
std::thread::spawn(move || loop {
w4.write(vec!["Lithuania"; 1005])
});
std::thread::spawn(move || loop {
w5.write(vec!["Latvia"; 1006])
});
let mut slovakia = 0;
let mut estonia = 0;
let mut czechia = 0;
let mut united_kingdom = 0;
let mut lithuania = 0;
let mut latvia = 0;
let mut ukraine = 0;
for _ in 0..10000000usize {
match r.read() {
val if val.first() == Some(&"Slovakia") => slovakia += 1,
val if val.first() == Some(&"Estonia") => estonia += 1,
val if val.first() == Some(&"Czechia") => czechia += 1,
val if val.first() == Some(&"United Kingdom") => united_kingdom += 1,
val if val.first() == Some(&"Lithuania") => lithuania += 1,
val if val.first() == Some(&"Latvia") => latvia += 1,
val if val.first() == Some(&"Ukraine") => ukraine += 1,
val => println!("val: {:?}, Not good, but ok", val.first())
}
}
println!("count Slovakia: {}", slovakia);
println!("count Estonia: {}", estonia);
println!("count Czechia: {}", czechia);
println!("count United Kingdom: {}", united_kingdom);
println!("count Lithuania: {}", lithuania);
println!("count Latvia: {}", latvia);
println!("count Ukraine: {}", ukraine);
} ```