Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
72ae4262
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
72ae4262
编写于
10月 01, 2012
作者:
T
Tim Chevalier
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Call 'new' instead of 'old' extfmt code, preparing for snapshot
上级
9b4db176
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
12 addition
and
9 deletion
+12
-9
src/libcore/extfmt.rs
src/libcore/extfmt.rs
+11
-8
src/libsyntax/ext/fmt.rs
src/libsyntax/ext/fmt.rs
+1
-1
未找到文件。
src/libcore/extfmt.rs
浏览文件 @
72ae4262
...
...
@@ -270,7 +270,10 @@ fn parse_type(s: &str, i: uint, lim: uint, error: ErrorFn) ->
}
}
// OLD CODE -- eventually remove
// Functions used by the fmt extension at runtime. For now there are a lot of
// decisions made a runtime. If it proves worthwhile then some of these
// conditions can be evaluated at compile-time. For now though it's cleaner to
// implement it 0this way, I think.
mod
rt
{
#[legacy_exports]
;
const
flag_none
:
u32
=
0u32
;
...
...
@@ -286,7 +289,7 @@ enum Ty { TyDefault, TyBits, TyHexUpper, TyHexLower, TyOctal, }
type
Conv
=
{
flags
:
u32
,
width
:
Count
,
precision
:
Count
,
ty
:
Ty
};
pure
fn
conv_int
(
cv
:
Conv
,
i
:
int
)
->
~
str
{
let
radix
=
10
u
;
let
radix
=
10
;
let
prec
=
get_int_precision
(
cv
);
let
mut
s
:
~
str
=
int_to_str_prec
(
i
,
radix
,
prec
);
if
0
<=
i
{
...
...
@@ -320,13 +323,13 @@ enum Ty { TyDefault, TyBits, TyHexUpper, TyHexLower, TyOctal, }
let
mut
s
=
str
::
from_char
(
c
);
return
unsafe
{
pad
(
cv
,
s
,
PadNozero
)
};
}
pure
fn
conv_str
(
cv
:
Conv
,
s
:
&
str
)
->
~
str
{
pure
fn
conv_str
(
cv
:
Conv
,
+
s
:
&
str
)
->
~
str
{
// For strings, precision is the maximum characters
// displayed
let
mut
unpadded
=
match
cv
.precision
{
CountImplied
=>
s
.to_unique
(),
CountIs
(
max
)
=>
if
max
as
uint
<
str
::
char_len
(
s
)
{
str
::
substr
(
s
,
0
,
max
as
uint
)
str
::
substr
(
s
,
0
u
,
max
as
uint
)
}
else
{
s
.to_unique
()
}
...
...
@@ -336,7 +339,7 @@ enum Ty { TyDefault, TyBits, TyHexUpper, TyHexLower, TyOctal, }
pure
fn
conv_float
(
cv
:
Conv
,
f
:
float
)
->
~
str
{
let
(
to_str
,
digits
)
=
match
cv
.precision
{
CountIs
(
c
)
=>
(
float
::
to_str_exact
,
c
as
uint
),
CountImplied
=>
(
float
::
to_str
,
6
)
CountImplied
=>
(
float
::
to_str
,
6
u
)
};
let
mut
s
=
unsafe
{
to_str
(
f
,
digits
)
};
if
0.0
<=
f
{
...
...
@@ -348,8 +351,8 @@ enum Ty { TyDefault, TyBits, TyHexUpper, TyHexLower, TyOctal, }
}
return
unsafe
{
pad
(
cv
,
s
,
PadFloat
)
};
}
pure
fn
conv_poly
<
T
>
(
cv
:
Conv
,
v
:
T
)
->
~
str
{
let
s
=
sys
::
log_str
(
&
v
);
pure
fn
conv_poly
<
T
>
(
cv
:
Conv
,
v
:
&
T
)
->
~
str
{
let
s
=
sys
::
log_str
(
v
);
return
conv_str
(
cv
,
s
);
}
...
...
@@ -460,7 +463,7 @@ fn pad(cv: Conv, +s: ~str, mode: PadMode) -> ~str {
}
}
//
NEW CODE
//
Remove after snapshot
// Functions used by the fmt extension at runtime. For now there are a lot of
// decisions made a runtime. If it proves worthwhile then some of these
...
...
src/libsyntax/ext/fmt.rs
浏览文件 @
72ae4262
...
...
@@ -39,7 +39,7 @@ fn pieces_to_expr(cx: ext_ctxt, sp: span,
->
@
ast
::
expr
{
fn
make_path_vec
(
_
cx
:
ext_ctxt
,
ident
:
@~
str
)
->
~
[
ast
::
ident
]
{
let
intr
=
_
cx
.parse_sess
()
.interner
;
return
~
[
intr
.intern
(
@~
"extfmt"
),
intr
.intern
(
@~
"rt
2
"
),
return
~
[
intr
.intern
(
@~
"extfmt"
),
intr
.intern
(
@~
"rt"
),
intr
.intern
(
ident
)];
}
fn
make_rt_path_expr
(
cx
:
ext_ctxt
,
sp
:
span
,
nm
:
@~
str
)
->
@
ast
::
expr
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录