#rc #refcell #write #options #refmut

rc-writer

将数据写入引用计数实例的小型实现

12个稳定版本

1.1.10 2022年3月18日
1.1.9 2021年4月22日
1.1.8 2020年7月29日
1.1.6 2019年9月17日
1.1.1 2018年11月14日

数据结构 中排名 582

Download history 52/week @ 2024-03-14 67/week @ 2024-03-21 78/week @ 2024-03-28 61/week @ 2024-04-04 29/week @ 2024-04-11 40/week @ 2024-04-18 58/week @ 2024-04-25 33/week @ 2024-05-02 37/week @ 2024-05-09 58/week @ 2024-05-16 106/week @ 2024-05-23 133/week @ 2024-05-30 43/week @ 2024-06-06 40/week @ 2024-06-13 18/week @ 2024-06-20 12/week @ 2024-06-27

每月下载量 114

MIT 许可证

6KB
58

Rc Writer

CI

将数据写入引用计数实例的小型实现。

示例

RcWriter

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

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);

Crates.io

https://crates.io/crates/rc-writer

文档

https://docs.rs/rc-writer

许可证

MIT

无运行时依赖