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;