4 个版本

0.1.2 2023年11月26日
0.1.1 2023年3月10日
0.1.0 2020年11月9日
0.0.1 2020年11月2日

#177 in Rust 模式

Download history • Rust 包仓库 3772/week @ 2024-03-14 • Rust 包仓库 1036/week @ 2024-03-21 • Rust 包仓库 457/week @ 2024-03-28 • Rust 包仓库 511/week @ 2024-04-04 • Rust 包仓库 711/week @ 2024-04-11 • Rust 包仓库 339/week @ 2024-04-18 • Rust 包仓库 13996/week @ 2024-04-25 • Rust 包仓库 17248/week @ 2024-05-02 • Rust 包仓库 17179/week @ 2024-05-09 • Rust 包仓库 16337/week @ 2024-05-16 • Rust 包仓库 27422/week @ 2024-05-23 • Rust 包仓库 23602/week @ 2024-05-30 • Rust 包仓库 16251/week @ 2024-06-06 • Rust 包仓库 19703/week @ 2024-06-13 • Rust 包仓库 20950/week @ 2024-06-20 • Rust 包仓库 14642/week @ 2024-06-27 • Rust 包仓库

75,547 每月下载量
用于 12 个包 (6 直接)

MIT/Apache

54KB
729

动机

用于元组的类型转换。

用法

将此包添加到 Cargo.toml

Cargo.toml:

tuplex = "0.1"

功能

  1. 在前后添加/删除元素

  2. 将异构元组转换为同构元组

文档

更多示例请参阅 文档

许可

许可协议为 APACHE-2.0 或 MIT。


lib.rs:

Rust 元组扩展。

功能

  1. 在前后添加/删除元素

  2. 将异构元组转换为同构元组

  3. where 子句中检查给定元组的长度限制

示例:列表操作

use tuplex::*;

let tuple = ();
assert_eq!( tuple.len(), 0 );

let tuple = tuple.push_front( 0 );
assert_eq!( tuple, (0,) );
assert_eq!( tuple.len(), 1 );

let tuple = tuple.push_front( false );
assert_eq!( tuple, (false,0) );
assert_eq!( tuple.len(), 2 );

let tuple = tuple.push_back( true );
assert_eq!( tuple, (false,0,true) );
assert_eq!( tuple.len(), 3 );

let tuple = tuple.push_back( 1 );
assert_eq!( tuple, (false,0,true,1) );
assert_eq!( tuple.len(), 4 );

let (front,tuple) = tuple.pop_front();
assert_eq!( front, false );
assert_eq!( tuple, (0,true,1) );

let (back,tuple) = tuple.pop_back();
assert_eq!( back, 1 );
assert_eq!( tuple, (0,true) );

示例:同构/异构转换

use tuplex::*;

// `into_homo_tuple()` works because i32 can be converted from i3, u16 and i32.
assert_eq!( (3_i8, 7_u16, 21_i32).into_homo_tuple(), (3_i32, 7_i32, 21_i32) );

示例:长度限制

  1. where 子句中检查给定元组的长度限制
use tuplex::*;

fn foo<Val,Tag>( val: Val ) where Val: LenExceeds<[();3],Tag> {}

foo((0,0,0,0));
// foo((0,0,0)); // won't compile

无运行时依赖

功能