#sequence #upper-case #lower-case #letter #output #digits #rendered

bin+lib letter-sequence

创建显示为大写字母、小写字母或数字的序列的方法

11 个版本 (5 个稳定版本)

2.1.0 2022 年 7 月 9 日
1.0.1 2022 年 6 月 22 日
0.6.0 2021 年 10 月 12 日

#779文本处理

每月下载量 26 次

自定义许可协议

47KB
1K SLoC

letter-sequence

Letter-Sequence 是一个包,它允许你创建比简单的序数数字更复杂的序列。

功能

  • 渲染绑定 - 通过渲染输出限制序列
  • 以大写字母、小写字母或数字渲染序列
  • 使用 +=-= 与另一个序列进行序列变异

一个不受渲染输出限制的大写字母序列

use letter_sequence::SequenceBuilder;
use std::convert::TryFrom;

let mut seq = SequenceBuilder::try_from("A")
	.unwrap()
	.upper()
	.build()
	.unwrap();
let elem = seq.next().unwrap();
assert_eq!( elem.to_string(), "A" );
let elem = seq.next().unwrap();
assert_eq!( elem.to_string(), "B" );
seq.set(25).unwrap();
let elem = seq.next().unwrap();
assert_eq!( elem.to_string(), "Z" );
let elem = seq.nth(3).unwrap();
assert_eq!( elem.to_string(), "AD" );
let elem = seq.next().unwrap();
assert_eq!( elem.to_string(), "AE" );

这次设置了 .max_render_capacity(),并设置为 .lower()

use letter_sequence::SequenceBuilder;
use std::convert::TryFrom;

let mut seq = SequenceBuilder::try_from("y")
	.unwrap()
	.lower()
	.max_render_capacity(1)
	.build()
	.unwrap();
let elem = seq.next().unwrap();
assert_eq!( elem.to_string(), "y"  );
let elem = seq.next().unwrap();
assert_eq!( elem.to_string(), "z"  );
let elem = seq.next();
assert_eq!( elem, None );

也支持有界和无界的数字序列

use letter_sequence::SequenceBuilder;
use std::convert::From;

let mut seq = SequenceBuilder::from(99)
	.numeric()
	.max_render_capacity(3)
	.build()
	.unwrap();
let elem = seq.next().unwrap();
assert_eq!( elem.to_string(), "99" );
let elem = seq.next().unwrap();
assert_eq!( elem.to_string(), "100" );

依赖项

~1.6–2.2MB
~48K SLoC