Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
f91160b6
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,发现更多精彩内容 >>
提交
f91160b6
编写于
2月 07, 2013
作者:
J
John Clements
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
json add enum encoder test case
上级
0e9495b9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
41 addition
and
1 deletion
+41
-1
src/libstd/json.rs
src/libstd/json.rs
+41
-1
未找到文件。
src/libstd/json.rs
浏览文件 @
f91160b6
...
...
@@ -133,7 +133,8 @@ fn emit_enum_variant(&self, name: &str, _id: uint, _cnt: uint, f: fn()) {
f
();
self
.wr
.write_char
(
']'
);
}
fn
emit_enum_variant_arg
(
&
self
,
idx
:
uint
,
f
:
fn
())
{
fn
emit_enum_variant_arg
(
&
self
,
_
idx
:
uint
,
f
:
fn
())
{
self
.wr
.write_char
(
','
);
f
();
}
...
...
@@ -1182,6 +1183,8 @@ mod tests {
use
core
::
result
;
use
core
::
hashmap
::
linear
::
LinearMap
;
use
core
::
cmp
;
fn
mk_object
(
items
:
&
[(
~
str
,
Json
)])
->
Json
{
let
mut
d
=
~
LinearMap
::
new
();
...
...
@@ -1249,6 +1252,43 @@ fn test_write_object() {
assert
a
==
b
;
}
// two fns copied from libsyntax/util/testing.rs.
// Should they be in their own crate?
pub
pure
fn
check_equal_ptr
<
T
:
cmp
::
Eq
>
(
given
:
&
T
,
expected
:
&
T
)
{
if
!
((
given
==
expected
)
&&
(
expected
==
given
))
{
die!
(
fmt!
(
"given %?, expected %?"
,
given
,
expected
));
}
}
pub
pure
fn
check_equal
<
T
:
cmp
::
Eq
>
(
given
:
T
,
expected
:
T
)
{
if
!
((
given
==
expected
)
&&
(
expected
==
given
))
{
die!
(
fmt!
(
"given %?, expected %?"
,
given
,
expected
));
}
}
// testing both auto_encode's calling patterns
// and json... not sure where to put these tests.
#[test]
fn
test_write_enum
()
{
let
bw
=
@
io
::
BytesWriter
{
bytes
:
dvec
::
DVec
(),
pos
:
0
};
let
bww
:
@
io
::
Writer
=
(
bw
as
@
io
::
Writer
);
let
encoder
=
(
@
Encoder
(
bww
)
as
@
serialize
::
Encoder
);
do
encoder
.emit_enum
(
~
"animal"
)
{
do
encoder
.emit_enum_variant
(
~
"frog"
,
37
,
1242
)
{
// name of frog:
do
encoder
.emit_enum_variant_arg
(
0
)
{
encoder
.emit_owned_str
(
~
"Henry"
)
}
// mass of frog in grams:
do
encoder
.emit_enum_variant_arg
(
1
)
{
encoder
.emit_int
(
349
);
}
}
}
check_equal
(
str
::
from_bytes
(
bw
.bytes.data
),
~
"[
\"
frog
\"
,
\"
Henry
\"
,349]"
);
}
#[test]
fn
test_trailing_characters
()
{
assert
from_str
(
~
"nulla"
)
==
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录