#shared-data #data-access #data-integrity #mutex #object #variables #modification

armc

Armc 是一个 Rust 实现,它简化了对变量的 Mutex 访问。

10 个稳定版本

1.4.5 2023年4月26日
1.3.3 2023年2月2日
1.3.2 2023年1月27日
1.3.1 2022年12月29日
1.0.0 2022年11月24日

#200 in 并发

Download history 2/week @ 2024-06-09 1/week @ 2024-06-16 1/week @ 2024-06-30 19/week @ 2024-07-07 232/week @ 2024-07-28

每月下载量 251
graph_event 中使用

MIT 许可证

18KB
373

Armc

Armc 是一个 Rust 库,它为共享数据提供了包装器,确保在修改和读取时数据完整性和线程阻塞。

安装

您可以将 Armc 依赖项添加到 Cargo.toml 文件中

toml

  [dependencies]
   armc = "1.4.4"

用法

要使用该库,只需使用以下代码导入它

use armc::Armc;

功能

以下是库的一些功能

创建 Armc 对象

要创建 Armc 对象,只需使用 new 方法并传递您要存储的数据

let armc = Armc::new(5);

lock_ref

访问 Armc 对象的数据 您可以通过阻塞可能的突变来访问存储的数据。可以进行并行访问。

let data = armc.lock_ref();
println!("Data: {:?}", data);

lock

修改 Armc 对象的数据 要修改 Armc 对象的数据,您需要使用 lock 方法,这将阻塞所有突变访问

let mut data = armc.lock();
*data = 10;
println!("Data: {:?}", data);

克隆 Armc 对象

您可以使用 clone 方法克隆 Armc 对象

let armc_clone = armc.clone();
println!("Data: {:?}", *armc_clone.lock_ref());

object! 及其衍生物

一组可能对 Rust 程序员有用的宏是 object!object_with_new!object_ref_access!object_mut_access! 宏。这些宏旨在简化具有线程安全字段访问的结构的创建。

object! 宏创建一个结构体,其字段由 ARMC(原子引用计数互斥锁)包装,以允许线程安全的突变。宏保留宏的名称作为结构体的名称。

object_with_new! 宏与 object! 宏类似,但它还生成一个名为 new 的构造函数方法,该方法接受每个字段的初始值。

object_ref_access! 宏与 object_with_new! 宏类似,但它还为每个字段生成获取器方法。

object_mut_access! 宏与 object_ref_access! 宏类似,但它还会为每个字段生成带后缀 _mut 的可变设置方法。注意!您需要在项目中添加 paste 依赖才能使 object_mut_access 宏正常工作。

[dependencies]
paste = "1.0.12"

这些宏旨在在创建具有线程安全字段访问的 struct 时节省时间和精力,可以使用以下方式使用:

#[macro_use]
extern crate my_crate;

object_mut_access!(MyStruct {
    foo: u32,
    bar: String,
});

let mut my_struct = MyStruct::new(42, "hello".to_string());

assert_eq!(*my_struct.foo(), 42);

my_struct.foo_mut(13);
assert_eq!(*my_struct.foo(), 13);

有关这些宏实现的更多信息,请参阅每个宏的文档。

贡献

欢迎贡献!请随意打开一个问题或提交一个拉取请求。

依赖项