#raw-pointers #data #unique #non #basic #type #escaping

no-std aliasable

Basic aliasable (non unique pointer) types

4 releases

0.1.3 Jan 10, 2021
0.1.2 Dec 8, 2020
0.1.1 Dec 8, 2020
0.1.0 Dec 7, 2020

#514 in Data structures

Download history 292181/week @ 2024-11-16 196458/week @ 2024-11-23 210387/week @ 2024-11-30 302501/week @ 2024-12-07 260647/week @ 2024-12-14 88502/week @ 2024-12-21 139255/week @ 2024-12-28 278650/week @ 2025-01-04 323924/week @ 2025-01-11 241619/week @ 2025-01-18 263170/week @ 2025-01-25 284411/week @ 2025-02-01 303582/week @ 2025-02-08 300271/week @ 2025-02-15 356668/week @ 2025-02-22 357944/week @ 2025-03-01

1,369,774 downloads per month
Used in 801 crates (7 directly)

MIT license

25KB
526 lines

Build Status Coverage Status Crate Docs

rust-aliasable

Rust library providing basic aliasable (non core::ptr::Unique) types
Documentation hosted on docs.rs.

aliasable = "0.1"

Why?

Used for escaping noalias when multiple raw pointers may point to the same data.

Goals

aliasable is not designed to provide a full interface for container types, simply to provide aliasable (non core::ptr::Unique) alternatives for dereferencing their owned data. When converting from a unique to an aliasable alternative, no data referenced is mutated (one-to-one internal representation aside from the non core::ptr::Unique pointer).

Usage

use aliasable::vec::AliasableVec;

// Re-exported via `aliasable::vec::UniqueVec`
let unique = Vec::from(&[1, 2, 3][..]);
let aliasable = AliasableVec::from(unique);

Dependencies