5 个不稳定版本
0.3.1 | 2021年2月4日 |
---|---|
0.3.0 | 2020年12月30日 |
0.2.0 | 2020年5月23日 |
0.1.1 | 2020年4月13日 |
0.1.0 | 2020年4月13日 |
#1422 in Rust 模式
每月 21 次下载
用于 2 crate
59KB
1.5K SLoC
qwutils (WIP)
use qwutils::*;
实现
Option {
fn with(&self, |&T|->R) -> R; //short for as_ref().map()
fn with_if(&self, &Option<U>, |&T,&U|->R) -> R;
fn add/sub/mul/div_to(&self, &V);
}
bool {
fn map(&self,||->R) -> R;
//map_or, map_or_else also available
fn option(&self) -> Option<()>;
fn result(&self) -> Result<(),()>;
//more bool impls: https://crates.io/crates/boolinator
}
Array/Tuple {
[T; N]::to_tuple(self) -> (T, ...);
(T, ...)::to_array(self) -> [T; N];
}
Vec {
fn push_option(&mut self, o: Option<T>);
fn grow_to_with(&mut self, len, ||->T);
fn grow_to(&mut self, len, T) where T: Clone;
fn grow_to_default(&mut self, len) where T: Default;
}
Result {
fn expect_nodebug(&self, &str); //for T without Debug
//expect_err, unwrap, unwrap_err also available
}
Range {
fn len(&self) -> T where T: Sub<T>;
}
大多数函数都有 _mut 变体可用
特质
RefClonable
trait RefClonable {
fn refc(&self) -> Self;
}
- 快速引用克隆
- 类似于 Clone
- 实现了 Rc/Arc
refcounted.refc()
的行为类似于Rc/Arc::clone(&refcounted)
ScopedAccess (WIP)
trait ScopedAccess {
fn access(&self, |&T|->R) -> R;
fn access_mut(&mut self, |&mut T|->R) -> R;
}
- 访问仅限作用域内的内部类型
- 实现了 RefCell, RwLock, Rc/Arc<RefCell/RwLock>, 引用, Box, ...
宏
static_stor
待办事项
函数
if_type (WIP)
pub fn if_type<T,Specific>(||->Specific) -> T;
- 如果 T 和 Specific 是同一类型(通过比较 TypeId),则调用给定的函数
- 两种类型都必须是静态已知的(T: 'static, Specific: 'static)
依赖关系
~9KB