Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
vnotepad
Exa
提交
ee8c146c
E
Exa
项目概览
vnotepad
/
Exa
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
Exa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ee8c146c
编写于
6月 28, 2014
作者:
B
Ben S
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Simplify string padding
上级
745bcce0
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
9 addition
and
8 deletion
+9
-8
column.rs
column.rs
+6
-6
exa.rs
exa.rs
+3
-2
未找到文件。
column.rs
浏览文件 @
ee8c146c
...
...
@@ -42,23 +42,23 @@ impl Column {
}
// An Alignment is used to pad a string to a certain length, letting
// it pick which end it puts the text on.
The length of the string is
// pa
ssed in specifically because it needs to be the *unformatted*
//
length, rather than just the number of
characters.
// it pick which end it puts the text on.
It takes the amount of
// pa
dding to apply, rather than the width the text should end up,
//
because these strings are usually full of control
characters.
impl
Alignment
{
pub
fn
pad_string
(
&
self
,
string
:
&
String
,
string_length
:
uint
,
width
:
uint
)
->
String
{
pub
fn
pad_string
(
&
self
,
string
:
&
String
,
padding
:
uint
)
->
String
{
let
mut
str
=
String
::
new
();
match
*
self
{
Left
=>
{
str
.push_str
(
string
.as_slice
());
for
_
in
range
(
string_length
,
width
)
{
for
_
in
range
(
0
,
padding
)
{
str
.push_char
(
' '
);
}
}
Right
=>
{
for
_
in
range
(
string_length
,
width
)
{
for
_
in
range
(
0
,
padding
)
{
str
.push_char
(
' '
);
}
str
.push_str
(
string
.as_slice
());
...
...
exa.rs
浏览文件 @
ee8c146c
...
...
@@ -95,7 +95,7 @@ fn exa(options: &Options, print_header: bool, string: String) {
.map
(|
n
|
lengths
.iter
()
.map
(|
row
|
*
row
.get
(
n
))
.max
()
.unwrap
())
.collect
();
for
(
field_
leng
ths
,
row
)
in
lengths
.iter
()
.zip
(
table
.iter
())
{
for
(
field_
wid
ths
,
row
)
in
lengths
.iter
()
.zip
(
table
.iter
())
{
for
(
num
,
column
)
in
options
.columns
.iter
()
.enumerate
()
{
if
num
!=
0
{
print!
(
" "
);
...
...
@@ -105,7 +105,8 @@ fn exa(options: &Options, print_header: bool, string: String) {
print!
(
"{}"
,
row
.get
(
num
));
}
else
{
print!
(
"{}"
,
column
.alignment
()
.pad_string
(
row
.get
(
num
),
*
field_lengths
.get
(
num
),
*
column_widths
.get
(
num
)));
let
padding
=
*
column_widths
.get
(
num
)
-
*
field_widths
.get
(
num
);
print!
(
"{}"
,
column
.alignment
()
.pad_string
(
row
.get
(
num
),
padding
));
}
}
print!
(
"
\n
"
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录