Crates.io | ownage |
lib.rs | ownage |
version | 0.1.0 |
source | src |
created_at | 2023-04-10 18:43:51.600135 |
updated_at | 2023-04-10 18:43:51.600135 |
description | Perform a massive ownage of your variables! Clone into closure without macros. |
homepage | https://github.com/xDarksome/ownage |
repository | https://github.com/xDarksome/ownage |
max_upload_size | |
id | 835358 |
size | 6,321 |
Perform a massive ownage of your variables!
For those who tired of manually cloning all the fancy arcs and boxes before passing them into a closure/thread/future, but who's also against introducing another general purpose macro into the codebase.
The own
function tries to provide the golden mean between code ergonomics and readability.
use ownage::own;
let string = String::new();
let str_ref = string.as_str();
let vec = Vec::<bool>::new();
let slice = vec.as_slice();
let arc = std::sync::Arc::new(42u8);
let u = 42u8;
let answer = own((&string, str_ref, &vec, slice, &arc, &u), |s, s_ref, v, sl, arc, u| {
std::thread::spawn(move || {
// Do your dirty stuff here
u
})
.join()
.unwrap()
});
assert_eq!(answer, 42);