1 个不稳定版本
0.1.0 | 2022年6月10日 |
---|
在 缓存 中排名第 354
14KB
这是一个crate,通过生成一个新结构体 RepStr
来只进行一次分配,用于缓存字符串的重复模式。
示例 1:直接引用Crate RepStr。
use rep_str::RepStr;
let repstr = rep_str::RepStr::new("#", 50); // generate a RepStr object with max repeat time 50
assert!("##########" == repstr.repeat_unwrap(10));
assert!("####################" == repstr.repeat_unwrap(20));
// no extra allocation would occurs:
assert!(repstr.repeat_unwrap(20).as_ptr() == repstr.repeat(12).unwrap().as_ptr())
// repstr.repeat_unwrap(51) // panic!
示例 2:通过IntoRepStr trait引用Crate RepStr
use rep_str::IntoRepStr;
let repstr = "🦀".repeat_cache(20);
assert!(Some("🦀🦀🦀🦀🦀🦀🦀🦀🦀🦀🦀🦀🦀🦀🦀🦀🦀🦀🦀🦀") == repstr.repeat(20));
assert!(None == repstr.repeat(21));