1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
/*!
# Rc Writer
A tiny implement for writing data to a reference counted instance.
## Examples
### RcWriter
```rust
extern crate rc_writer;
use rc_writer::RcWriter;
use std::rc::Rc;
use std::cell::RefCell;
use std::io::Write;
let data = RefCell::new(Vec::new());
let data_rc = Rc::new(data);
let mut writer = RcWriter::new(data_rc.clone());
writer.write(b"Hello world!").unwrap();
writer.flush().unwrap();
assert_eq!(b"Hello world!".to_vec(), *data_rc.borrow());
```
### RcOptionWriter
```rust
extern crate rc_writer;
use rc_writer::RcOptionWriter;
use std::rc::Rc;
use std::cell::RefCell;
use std::io::Write;
let data = RefCell::new(Some(Vec::new()));
let data_rc = Rc::new(data);
let mut writer = RcOptionWriter::new(data_rc.clone());
writer.write(b"Hello world!").unwrap();
writer.flush().unwrap();
let data = data_rc.borrow_mut().take().unwrap(); // remove out the vec from rc
assert_eq!(b"Hello world!".to_vec(), data);
```
*/
mod rc_writer;
mod rc_option_writer;
pub use rc_writer::RcWriter;
pub use rc_option_writer::RcOptionWriter;