arcmut

Crates.ioarcmut
lib.rsarcmut
version0.1.0
sourcesrc
created_at2024-01-10 15:10:09.374083
updated_at2024-01-10 15:10:09.374083
descriptionIntroduce ArcMut, utility for FFI.
homepagehttps://github.com/al8n/arcmut
repositoryhttps://github.com/al8n/arcmut
max_upload_size
id1095292
size53,376
Al Liu (al8n)

documentation

https://docs.rs/arcmut

README

ArcMut

Introduce ArcMut struct, utility for FFI.

github Build codecov

docs.rs crates.io crates.io

license

English | 简体中文

Introduction

ArcMut is a reference-counted pointer to a value of type T, which can be mutated.

Note: This struct is not thread-safe!!!

In normal Rust code, you are not expected to use this type, but when you are writing FFI code, you may need to use this type to share a value between Rust and other languages, and again, if the code in other languages is concurrent, you are encouraged to use a Arc<Mutex<T>> instead.

ArcMut<T> provides shared ownership of a value of type T, allocated in the heap. Invoking clone on ArcMut produces another pointer to the same allocation in the heap. When the last ArcMut pointer to a given allocation is destroyed, the value stored in that allocation (often referred to as "inner value") is also dropped.

This is similar to std::sync::Arc, but it allows interior mutability.

Installation

[dependencies]
arcmut = "0.1"

License

arcmut is under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE, LICENSE-MIT for details.

Copyright (c) 2024 Al Liu.

Commit count: 0

cargo fmt