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 模式
75,547 每月下载量
用于 12 个包 (6 直接)
54KB
729 行
动机
用于元组的类型转换。
用法
将此包添加到 Cargo.toml
Cargo.toml
:
tuplex = "0.1"
功能
-
在前后添加/删除元素
-
将异构元组转换为同构元组
文档
更多示例请参阅 文档。
许可
许可协议为 APACHE-2.0 或 MIT。
lib.rs
:
Rust 元组扩展。
功能
-
在前后添加/删除元素
-
将异构元组转换为同构元组
-
在
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) );
示例:长度限制
- 在
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