Crate mem_tools

Source
Expand description

Collection of tools to manipulate memory.

§Module :: mem_tools

experimental rust-status docs.rs Open in Gitpod discord

Collection of tools to manipulate memory.

Performant size / pointer / region / data comparing.

§Basic use-case


use mem_tools as mem;

// Are two pointers are the same, not taking into accoint type.
// Unlike `std::ptr::eq()` does not require arguments to have the same type.
let src1 = ( 1, );
let src2 = ( 1, );
assert!( !mem::same_ptr( &src1, &src2 ) );

// Are two pointers points on data of the same size.
let src1 = "abc";
let src2 = "cba";
assert!( mem::same_size( src1, src2 ) );

// Are two pointers points on the same region, ie same size and same pointer.
// Does not require arguments to have the same type.
let src1 = "abc";
let src2 = "abc";
assert!( mem::same_region( src1, src2 ) );

§To add to your project

cargo add mem_tools

§Try out from the repository

git clone https://github.com/Wandalen/wTools
cd wTools
cd examples/mem_tools_trivial
cargo run

§Sample

discord Open in Gitpod docs.rs docs.rs](https://docs.rs/meta_tools)

Modules§

dependency
Namespace with dependencies.
exposed
Exposed namespace of the module.
mem
Collection of general purpose meta tools.
orphan
Orphan namespace of the module.
own
Own namespace of the module.
prelude
Prelude to use essentials: use my_module::prelude::*.

Functions§

same_data
Are two pointers points on the same data.
same_ptr
Are two pointers are the same, not taking into accoint type.
same_region
Are two pointers points on the same region, ie same size and same pointer.
same_size
Are two pointers points on data of the same size.