rc_writer/
lib.rs

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