Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
f65ea0c8
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,发现更多精彩内容 >>
提交
f65ea0c8
编写于
3月 16, 2012
作者:
B
Brian Anderson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
core: Add extension methods for option
上级
392d3c8d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
29 addition
and
0 deletion
+29
-0
src/libcore/core.rs
src/libcore/core.rs
+1
-0
src/libcore/option.rs
src/libcore/option.rs
+28
-0
未找到文件。
src/libcore/core.rs
浏览文件 @
f65ea0c8
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
import
path
=
path
::
path
;
import
path
=
path
::
path
;
import
vec
::
vec_len
;
import
vec
::
vec_len
;
import
str
::
extensions
;
import
str
::
extensions
;
import
option
::
extensions
;
export
path
,
option
,
some
,
none
,
vec_len
,
unreachable
;
export
path
,
option
,
some
,
none
,
vec_len
,
unreachable
;
export
extensions
;
export
extensions
;
...
...
src/libcore/option.rs
浏览文件 @
f65ea0c8
...
@@ -87,6 +87,34 @@ fn unwrap<T>(-opt: option<T>) -> T unsafe {
...
@@ -87,6 +87,34 @@ fn unwrap<T>(-opt: option<T>) -> T unsafe {
ret
liberated_value
;
ret
liberated_value
;
}
}
impl
extensions
<
T
:
copy
>
for
option
<
T
>
{
#[doc
=
"
Update an optional value by optionally running its content through a
function that returns an option.
"
]
fn
chain
<
U
>
(
f
:
fn
(
T
)
->
option
<
U
>
)
->
option
<
U
>
{
chain
(
self
,
f
)
}
#[doc
=
"Returns the contained value or a default"
]
fn
from_maybe
(
def
:
T
)
->
T
{
from_maybe
(
self
,
def
)
}
#[doc
=
"Applies a function to the contained value or returns a default"
]
fn
maybe
<
U
:
copy
>
(
def
:
U
,
f
:
fn
(
T
)
->
U
)
->
U
{
maybe
(
self
,
def
,
f
)
}
#[doc
=
"Performs an operation on the contained value or does nothing"
]
fn
may
(
f
:
fn
(
T
))
{
may
(
self
,
f
)
}
#[doc
=
"
Gets the value out of an option
# Failure
Fails if the value equals `none`
"
]
fn
get
()
->
T
{
get
(
self
)
}
#[doc
=
"Returns true if the option equals `none`"
]
fn
is_none
()
->
bool
{
is_none
(
self
)
}
#[doc
=
"Returns true if the option contains some value"
]
fn
is_some
()
->
bool
{
is_some
(
self
)
}
#[doc
=
"Maps a `some` value from one type to another"
]
fn
map
<
U
:
copy
>
(
f
:
fn
(
T
)
->
U
)
->
option
<
U
>
{
map
(
self
,
f
)
}
}
#[test]
#[test]
fn
test_unwrap_ptr
()
{
fn
test_unwrap_ptr
()
{
let
x
=
~
0
;
let
x
=
~
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录