Skip to content
/ arcmut Public
generated from al8n/template-rs

Introduce ArcMut, utility for FFI.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

al8n/arcmut

Repository files navigation

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.

About

Introduce ArcMut, utility for FFI.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published