Skip to content

frogtd/transvec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

transvec

transvec is a crate for transmuting Vecs without copying.

Installation

Add this to your Cargo.toml:

[dependencies]
transvec = "0.3"

Usage

use transvec::transmute_vec;
let input: Vec<u8> = vec![1, 2, 3, 4];
let output: Vec<u16, _> = transmute_vec(input).unwrap();

#![no_std]

This supports no_std, just disable the default features, and optionally enable allocator_api, which in addition requires atomic pointers. It does require alloc though.

Nightly

This is nightly because it's blocked on the allocator_api, which is how this crate can get around the aligment issue.

You can however turn off default features, and optionally enable std to make it work on stable, with the only options being transmute_vec_basic and transmute_vec_basic_may_copy.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Licenses

About

transmuting Vecs

Resources

License

MIT, Unlicense licenses found

Licenses found

MIT
LICENSE-MIT
Unlicense
LICENSE-UNLICENSE

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages