Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
a8221bd5
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,发现更多精彩内容 >>
提交
a8221bd5
编写于
8月 26, 2013
作者:
B
bors
浏览文件
操作
浏览文件
下载
差异文件
auto merge of #8438 : cmr/rust/default, r=thestinger
上级
1ac7d809
6eb924d2
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
36 addition
and
18 deletion
+36
-18
src/libstd/default.rs
src/libstd/default.rs
+17
-0
src/libstd/prelude.rs
src/libstd/prelude.rs
+1
-0
src/libstd/std.rs
src/libstd/std.rs
+1
-1
src/libstd/str.rs
src/libstd/str.rs
+12
-15
src/libstd/unit.rs
src/libstd/unit.rs
+5
-0
src/test/run-pass/deriving-zero.rs
src/test/run-pass/deriving-zero.rs
+0
-2
未找到文件。
src/libstd/default.rs
0 → 100644
浏览文件 @
a8221bd5
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
//! The Default trait
/// A trait that types which have a useful default value should implement.
pub
trait
Default
{
/// Return the "default value" for a type.
fn
default
()
->
Self
;
}
src/libstd/prelude.rs
浏览文件 @
a8221bd5
...
...
@@ -81,6 +81,7 @@
pub
use
vec
::{
ImmutableEqVector
,
ImmutableTotalOrdVector
,
ImmutableCopyableVector
};
pub
use
vec
::{
OwnedVector
,
OwnedCopyableVector
,
OwnedEqVector
,
MutableVector
};
pub
use
io
::{
Reader
,
ReaderUtil
,
Writer
,
WriterUtil
};
pub
use
default
::
Default
;
// Reexported runtime types
pub
use
comm
::{
stream
,
Port
,
Chan
,
GenericChan
,
GenericSmartChan
,
GenericPort
,
Peekable
};
...
...
src/libstd/std.rs
浏览文件 @
a8221bd5
...
...
@@ -148,7 +148,7 @@ pub mod linkhack {
pub
mod
io
;
pub
mod
hash
;
pub
mod
container
;
pub
mod
default
;
/* Common data structures */
...
...
src/libstd/str.rs
浏览文件 @
a8221bd5
...
...
@@ -26,7 +26,7 @@
use
iterator
::{
Filter
,
AdditiveIterator
,
Map
};
use
iterator
::{
Invert
,
DoubleEndedIterator
};
use
libc
;
use
num
::{
Saturating
,
Zero
};
use
num
::{
Saturating
};
use
option
::{
None
,
Option
,
Some
};
use
ptr
;
use
ptr
::
RawPtr
;
...
...
@@ -35,6 +35,7 @@
use
unstable
::
raw
::{
Repr
,
Slice
};
use
vec
;
use
vec
::{
OwnedVector
,
OwnedCopyableVector
,
ImmutableVector
,
MutableVector
};
use
default
::
Default
;
/*
Section: Conditions
...
...
@@ -2467,19 +2468,16 @@ fn extend<T: Iterator<char>>(&mut self, iterator: &mut T) {
}
// This works because every lifetime is a sub-lifetime of 'static
impl
<
'self
>
Zero
for
&
'self
str
{
fn
zero
()
->
&
'self
str
{
""
}
fn
is_zero
(
&
self
)
->
bool
{
self
.is_empty
()
}
impl
<
'self
>
Default
for
&
'self
str
{
fn
default
()
->
&
'self
str
{
""
}
}
impl
Zero
for
~
str
{
fn
zero
()
->
~
str
{
~
""
}
fn
is_zero
(
&
self
)
->
bool
{
self
.len
()
==
0
}
impl
Default
for
~
str
{
fn
default
()
->
~
str
{
~
""
}
}
impl
Zero
for
@
str
{
fn
zero
()
->
@
str
{
@
""
}
fn
is_zero
(
&
self
)
->
bool
{
self
.len
()
==
0
}
impl
Default
for
@
str
{
fn
default
()
->
@
str
{
@
""
}
}
#[cfg(test)]
...
...
@@ -3660,12 +3658,11 @@ fn t<'a>(s: &str, sep: &'a str, u: ~[&str]) {
}
#[test]
fn
test_str_
zero
()
{
use
num
::
Zero
;
fn
t
<
S
:
Zero
+
Str
>
()
{
let
s
:
S
=
Zero
::
zero
();
fn
test_str_
default
()
{
use
default
::
Default
;
fn
t
<
S
:
Default
+
Str
>
()
{
let
s
:
S
=
Default
::
default
();
assert_eq!
(
s
.as_slice
(),
""
);
assert
!
(
s
.is_zero
());
}
t
::
<&
str
>
();
...
...
src/libstd/unit.rs
浏览文件 @
a8221bd5
...
...
@@ -52,3 +52,8 @@ fn zero() -> () { () }
#[inline]
fn
is_zero
(
&
self
)
->
bool
{
true
}
}
#[cfg(not(test))]
impl
Default
for
()
{
fn
default
()
->
()
{
()
}
}
src/test/run-pass/deriving-zero.rs
浏览文件 @
a8221bd5
...
...
@@ -24,8 +24,6 @@ struct E { a: int, b: int }
#[deriving(Zero)]
struct
Lots
{
a
:
~
str
,
b
:
@
str
,
c
:
Option
<
util
::
NonCopyable
>
,
d
:
u8
,
e
:
char
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录