#swap #mem #linked-list #ptr #node

no-std swap-n

std::mem::swap的n个参数扩展

2次发布

0.1.1 2022年1月22日
0.1.0 2022年1月22日

#901 in 嵌入式开发

MIT许可证

5KB

是什么

非常简单,是core::mem::swap的n个参数扩展。

动机

为了在LeetCode上做一个链表问题而编写的。

用法

将以下内容添加到您的Cargo.toml中

swap-n = "0.1"

使用#[macro_use] extern crate swap_n;或对于较新版本,直接调用swap_n::swap_n或通过use swap_n::swap_n;

示例

use swap_n::swap_n;

fn main() {
    let mut x = std::boxed::Box::new(1);
    let mut y = std::boxed::Box::new(2);
    let mut z = std::boxed::Box::new(3);
    let mut w = std::boxed::Box::new(4);

    println!("The old values of x, y, z, w: {} {} {} {}", *x, *y, *z, *w);

    swap_n!(&mut x, &mut y, &mut z, &mut w);

    println!("The new values of x, y, z, w: {} {} {} {}", *x, *y, *z, *w);
}

许可证

MIT许可证


lib.rs:

宏扩展core::mem::swap到n个元素

示例用法

// #[macro_use] extern crate swap_n;
use swap_n::swap_n;
    
let mut x = 1;
let mut y = 2;
let mut z = 3;

swap_n!(&mut x, &mut y, &mut z);

失败示例

use swap_n::swap_n;

let mut x = 1;
swap_n!(&mut x);
use swap_n::swap_n;

let mut x = 1;
swap_n!(x);
use swap_n::swap_n;

let mut x = 1;
let mut y = 1.0;
swap_n!(&mut x, &mut y);

无运行时依赖