Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
3fb78e29
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,发现更多精彩内容 >>
提交
3fb78e29
编写于
8月 06, 2014
作者:
N
nham
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use byte literals in libstd
上级
dfdea3f1
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
52 addition
and
54 deletion
+52
-54
src/libstd/ascii.rs
src/libstd/ascii.rs
+6
-6
src/libstd/dynamic_lib.rs
src/libstd/dynamic_lib.rs
+1
-1
src/libstd/io/buffered.rs
src/libstd/io/buffered.rs
+7
-7
src/libstd/io/fs.rs
src/libstd/io/fs.rs
+2
-2
src/libstd/io/mod.rs
src/libstd/io/mod.rs
+2
-2
src/libstd/io/net/ip.rs
src/libstd/io/net/ip.rs
+6
-6
src/libstd/io/stdio.rs
src/libstd/io/stdio.rs
+1
-1
src/libstd/macros.rs
src/libstd/macros.rs
+1
-1
src/libstd/num/strconv.rs
src/libstd/num/strconv.rs
+17
-19
src/libstd/os.rs
src/libstd/os.rs
+1
-1
src/libstd/path/mod.rs
src/libstd/path/mod.rs
+3
-3
src/libstd/path/posix.rs
src/libstd/path/posix.rs
+1
-1
src/libstd/path/windows.rs
src/libstd/path/windows.rs
+4
-4
未找到文件。
src/libstd/ascii.rs
浏览文件 @
3fb78e29
...
...
@@ -119,7 +119,7 @@ pub fn is_alphanumeric(&self) -> bool {
/// Check if the character is a space or horizontal tab
#[inline]
pub
fn
is_blank
(
&
self
)
->
bool
{
self
.chr
==
' '
as
u8
||
self
.chr
==
'\t'
as
u8
self
.chr
==
b
' '
||
self
.chr
==
b
'\t'
}
/// Check if the character is a control character
...
...
@@ -150,7 +150,7 @@ pub fn is_lower(&self) -> bool {
/// Checks if the character is lowercase
#[inline]
pub
fn
is_lowercase
(
&
self
)
->
bool
{
(
self
.chr
-
'a'
as
u8
)
<
26
(
self
.chr
-
b
'a'
)
<
26
}
#[inline]
...
...
@@ -163,7 +163,7 @@ pub fn is_upper(&self) -> bool {
/// Checks if the character is uppercase
#[inline]
pub
fn
is_uppercase
(
&
self
)
->
bool
{
(
self
.chr
-
'A'
as
u8
)
<
26
(
self
.chr
-
b
'A'
)
<
26
}
/// Checks if the character is punctuation
...
...
@@ -175,7 +175,7 @@ pub fn is_punctuation(&self) -> bool {
/// Checks if the character is a valid hex digit
#[inline]
pub
fn
is_hex
(
&
self
)
->
bool
{
self
.is_digit
()
||
((
self
.chr
|
32u8
)
-
'a'
as
u8
)
<
6
self
.is_digit
()
||
((
self
.chr
|
32u8
)
-
b
'a'
)
<
6
}
}
...
...
@@ -792,13 +792,13 @@ fn test_eq_ignore_ascii_case() {
#[test]
fn
test_to_string
()
{
let
s
=
Ascii
{
chr
:
't'
as
u8
}
.to_string
();
let
s
=
Ascii
{
chr
:
b
't'
}
.to_string
();
assert_eq!
(
s
,
"t"
.to_string
());
}
#[test]
fn
test_show
()
{
let
c
=
Ascii
{
chr
:
't'
as
u8
};
let
c
=
Ascii
{
chr
:
b
't'
};
assert_eq!
(
format!
(
"{}"
,
c
),
"t"
.to_string
());
}
}
src/libstd/dynamic_lib.rs
浏览文件 @
3fb78e29
...
...
@@ -114,7 +114,7 @@ pub fn envvar() -> &'static str {
}
fn
separator
()
->
u8
{
if
cfg!
(
windows
)
{
';'
as
u8
}
else
{
':'
as
u8
}
if
cfg!
(
windows
)
{
b
';'
}
else
{
b
':'
}
}
/// Returns the current search path for dynamic libraries being used by this
...
...
src/libstd/io/buffered.rs
浏览文件 @
3fb78e29
...
...
@@ -248,7 +248,7 @@ pub fn unwrap(self) -> W { self.inner.unwrap() }
impl
<
W
:
Writer
>
Writer
for
LineBufferedWriter
<
W
>
{
fn
write
(
&
mut
self
,
buf
:
&
[
u8
])
->
IoResult
<
()
>
{
match
buf
.iter
()
.rposition
(|
&
b
|
b
==
'\n'
as
u8
)
{
match
buf
.iter
()
.rposition
(|
&
b
|
b
==
b
'\n'
)
{
Some
(
i
)
=>
{
try!
(
self
.inner
.write
(
buf
.slice_to
(
i
+
1
)));
try!
(
self
.inner
.flush
());
...
...
@@ -524,15 +524,15 @@ fn test_line_buffer() {
assert_eq!
(
writer
.get_ref
()
.get_ref
(),
&
[]);
writer
.flush
()
.unwrap
();
assert_eq!
(
writer
.get_ref
()
.get_ref
(),
&
[
0
,
1
]);
writer
.write
([
0
,
'\n'
as
u8
,
1
,
'\n'
as
u8
,
2
])
.unwrap
();
writer
.write
([
0
,
b
'\n'
,
1
,
b
'\n'
,
2
])
.unwrap
();
assert_eq!
(
writer
.get_ref
()
.get_ref
(),
&
[
0
,
1
,
0
,
'\n'
as
u8
,
1
,
'\n'
as
u8
]);
&
[
0
,
1
,
0
,
b
'\n'
,
1
,
b
'\n'
]);
writer
.flush
()
.unwrap
();
assert_eq!
(
writer
.get_ref
()
.get_ref
(),
&
[
0
,
1
,
0
,
'\n'
as
u8
,
1
,
'\n'
as
u8
,
2
]);
writer
.write
([
3
,
'\n'
as
u8
])
.unwrap
();
&
[
0
,
1
,
0
,
b
'\n'
,
1
,
b
'\n'
,
2
]);
writer
.write
([
3
,
b
'\n'
])
.unwrap
();
assert_eq!
(
writer
.get_ref
()
.get_ref
(),
&
[
0
,
1
,
0
,
'\n'
as
u8
,
1
,
'\n'
as
u8
,
2
,
3
,
'\n'
as
u8
]);
&
[
0
,
1
,
0
,
b
'\n'
,
1
,
b
'\n'
,
2
,
3
,
b
'\n'
]);
}
#[test]
...
...
@@ -579,7 +579,7 @@ fn read_char_buffered() {
#[test]
fn
test_chars
()
{
let
buf
=
[
195u8
,
159u8
,
'a'
as
u8
];
let
buf
=
[
195u8
,
159u8
,
b
'a'
];
let
mut
reader
=
BufferedReader
::
with_capacity
(
1
,
BufReader
::
new
(
buf
));
let
mut
it
=
reader
.chars
();
assert_eq!
(
it
.next
(),
Some
(
Ok
(
'ß'
)));
...
...
src/libstd/io/fs.rs
浏览文件 @
3fb78e29
...
...
@@ -1241,8 +1241,8 @@ pub fn tmpdir() -> TempDir {
let
mut
cur
=
[
0u8
,
..
2
];
for
f
in
files
{
let
stem
=
f
.filestem_str
()
.unwrap
();
let
root
=
stem
.as_bytes
()[
0
]
-
(
'0'
as
u8
)
;
let
name
=
stem
.as_bytes
()[
1
]
-
(
'0'
as
u8
)
;
let
root
=
stem
.as_bytes
()[
0
]
-
b
'0'
;
let
name
=
stem
.as_bytes
()[
1
]
-
b
'0'
;
assert!
(
cur
[
root
as
uint
]
<
name
);
cur
[
root
as
uint
]
=
name
;
}
...
...
src/libstd/io/mod.rs
浏览文件 @
3fb78e29
...
...
@@ -1103,7 +1103,7 @@ fn write_str(&mut self, s: &str) -> IoResult<()> {
/// that the `write` method is used specifically instead.
#[inline]
fn
write_line
(
&
mut
self
,
s
:
&
str
)
->
IoResult
<
()
>
{
self
.write_str
(
s
)
.and_then
(|()|
self
.write
([
'\n'
as
u8
]))
self
.write_str
(
s
)
.and_then
(|()|
self
.write
([
b
'\n'
]))
}
/// Write a single char, encoded as UTF-8.
...
...
@@ -1442,7 +1442,7 @@ pub trait Buffer: Reader {
/// Additionally, this function can fail if the line of input read is not a
/// valid UTF-8 sequence of bytes.
fn
read_line
(
&
mut
self
)
->
IoResult
<
String
>
{
self
.read_until
(
'\n'
as
u8
)
.and_then
(|
line
|
self
.read_until
(
b
'\n'
)
.and_then
(|
line
|
match
String
::
from_utf8
(
line
)
{
Ok
(
s
)
=>
Ok
(
s
),
Err
(
_
)
=>
Err
(
standard_error
(
InvalidInput
)),
...
...
src/libstd/io/net/ip.rs
浏览文件 @
3fb78e29
...
...
@@ -161,12 +161,12 @@ fn read_digit(&mut self, radix: u8) -> Option<u8> {
fn
parse_digit
(
c
:
char
,
radix
:
u8
)
->
Option
<
u8
>
{
let
c
=
c
as
u8
;
// assuming radix is either 10 or 16
if
c
>=
'0'
as
u8
&&
c
<=
'9'
as
u8
{
Some
(
c
-
'0'
as
u8
)
}
else
if
radix
>
10
&&
c
>=
'a'
as
u8
&&
c
<
'a'
as
u8
+
(
radix
-
10
)
{
Some
(
c
-
'a'
as
u8
+
10
)
}
else
if
radix
>
10
&&
c
>=
'A'
as
u8
&&
c
<
'A'
as
u8
+
(
radix
-
10
)
{
Some
(
c
-
'A'
as
u8
+
10
)
if
c
>=
b
'0'
&&
c
<=
b
'9'
{
Some
(
c
-
b
'0'
)
}
else
if
radix
>
10
&&
c
>=
b
'a'
&&
c
<
b
'a'
+
(
radix
-
10
)
{
Some
(
c
-
b
'a'
+
10
)
}
else
if
radix
>
10
&&
c
>=
b
'A'
&&
c
<
b
'A'
+
(
radix
-
10
)
{
Some
(
c
-
b
'A'
+
10
)
}
else
{
None
}
...
...
src/libstd/io/stdio.rs
浏览文件 @
3fb78e29
...
...
@@ -239,7 +239,7 @@ pub fn print(s: &str) {
/// `\n` character is printed to the console after the string.
pub
fn
println
(
s
:
&
str
)
{
with_task_stdout
(|
io
|
{
io
.write
(
s
.as_bytes
())
.and_then
(|()|
io
.write
([
'\n'
as
u8
]))
io
.write
(
s
.as_bytes
())
.and_then
(|()|
io
.write
([
b
'\n'
]))
})
}
...
...
src/libstd/macros.rs
浏览文件 @
3fb78e29
...
...
@@ -502,7 +502,7 @@ pub mod builtin {
///
/// ```
/// let rust = bytes!("r", 'u', "st", 255);
/// assert_eq!(rust[1],
'u' as u8
);
/// assert_eq!(rust[1],
b'u'
);
/// assert_eq!(rust[4], 255);
/// ```
#[macro_export]
...
...
src/libstd/num/strconv.rs
浏览文件 @
3fb78e29
...
...
@@ -138,12 +138,10 @@ impl NumStrConv for $t {
// Special value strings as [u8] consts.
static
INF_BUF
:
[
u8
,
..
3
]
=
[
'i'
as
u8
,
'n'
as
u8
,
'f'
as
u8
];
static
POS_INF_BUF
:
[
u8
,
..
4
]
=
[
'+'
as
u8
,
'i'
as
u8
,
'n'
as
u8
,
'f'
as
u8
];
static
NEG_INF_BUF
:
[
u8
,
..
4
]
=
[
'-'
as
u8
,
'i'
as
u8
,
'n'
as
u8
,
'f'
as
u8
];
static
NAN_BUF
:
[
u8
,
..
3
]
=
[
'N'
as
u8
,
'a'
as
u8
,
'N'
as
u8
];
static
INF_BUF
:
[
u8
,
..
3
]
=
[
b
'i'
,
b
'n'
,
b
'f'
];
static
POS_INF_BUF
:
[
u8
,
..
4
]
=
[
b
'+'
,
b
'i'
,
b
'n'
,
b
'f'
];
static
NEG_INF_BUF
:
[
u8
,
..
4
]
=
[
b
'-'
,
b
'i'
,
b
'n'
,
b
'f'
];
static
NAN_BUF
:
[
u8
,
..
3
]
=
[
b
'N'
,
b
'a'
,
b
'N'
];
/**
* Converts an integral number to its string representation as a byte vector.
...
...
@@ -201,8 +199,8 @@ pub fn int_to_str_bytes_common<T: Int>(num: T, radix: uint, sign: SignFormat, f:
current_digit_signed
};
buf
[
cur
]
=
match
current_digit
.to_u8
()
.unwrap
()
{
i
@
0
..
9
=>
'0'
as
u8
+
i
,
i
=>
'a'
as
u8
+
(
i
-
10
),
i
@
0
..
9
=>
b
'0'
+
i
,
i
=>
b
'a'
+
(
i
-
10
),
};
cur
+=
1
;
...
...
@@ -213,8 +211,8 @@ pub fn int_to_str_bytes_common<T: Int>(num: T, radix: uint, sign: SignFormat, f:
// Decide what sign to put in front
match
sign
{
SignNeg
|
SignAll
if
neg
=>
{
f
(
'-'
as
u8
);
}
SignAll
=>
{
f
(
'+'
as
u8
);
}
SignNeg
|
SignAll
if
neg
=>
{
f
(
b
'-'
);
}
SignAll
=>
{
f
(
b
'+'
);
}
_
=>
()
}
...
...
@@ -350,10 +348,10 @@ pub fn float_to_str_bytes_common<T:NumCast+Zero+One+PartialEq+PartialOrd+Float+
// Decide what sign to put in front
match
sign
{
SignNeg
|
SignAll
if
neg
=>
{
buf
.push
(
'-'
as
u8
);
buf
.push
(
b
'-'
);
}
SignAll
=>
{
buf
.push
(
'+'
as
u8
);
buf
.push
(
b
'+'
);
}
_
=>
()
}
...
...
@@ -368,7 +366,7 @@ pub fn float_to_str_bytes_common<T:NumCast+Zero+One+PartialEq+PartialOrd+Float+
// Now emit the fractional part, if any
deccum
=
num
.fract
();
if
deccum
!=
_0
||
(
limit_digits
&&
exact
&&
digit_count
>
0
)
{
buf
.push
(
'.'
as
u8
);
buf
.push
(
b
'.'
);
let
mut
dig
=
0u
;
// calculate new digits while
...
...
@@ -415,14 +413,14 @@ pub fn float_to_str_bytes_common<T:NumCast+Zero+One+PartialEq+PartialOrd+Float+
// If reached left end of number, have to
// insert additional digit:
if
i
<
0
||
*
buf
.get
(
i
as
uint
)
==
'-'
as
u8
||
*
buf
.get
(
i
as
uint
)
==
'+'
as
u8
{
||
*
buf
.get
(
i
as
uint
)
==
b
'-'
||
*
buf
.get
(
i
as
uint
)
==
b
'+'
{
buf
.insert
((
i
+
1
)
as
uint
,
value2ascii
(
1
));
break
;
}
// Skip the '.'
if
*
buf
.get
(
i
as
uint
)
==
'.'
as
u8
{
i
-=
1
;
continue
;
}
if
*
buf
.get
(
i
as
uint
)
==
b
'.'
{
i
-=
1
;
continue
;
}
// Either increment the digit,
// or set to 0 if max and carry the 1.
...
...
@@ -448,14 +446,14 @@ pub fn float_to_str_bytes_common<T:NumCast+Zero+One+PartialEq+PartialOrd+Float+
let
mut
i
=
buf_max_i
;
// discover trailing zeros of fractional part
while
i
>
start_fractional_digits
&&
*
buf
.get
(
i
)
==
'0'
as
u8
{
while
i
>
start_fractional_digits
&&
*
buf
.get
(
i
)
==
b
'0'
{
i
-=
1
;
}
// Only attempt to truncate digits if buf has fractional digits
if
i
>=
start_fractional_digits
{
// If buf ends with '.', cut that too.
if
*
buf
.get
(
i
)
==
'.'
as
u8
{
i
-=
1
}
if
*
buf
.get
(
i
)
==
b
'.'
{
i
-=
1
}
// only resize buf if we actually remove digits
if
i
<
buf_max_i
{
...
...
@@ -465,7 +463,7 @@ pub fn float_to_str_bytes_common<T:NumCast+Zero+One+PartialEq+PartialOrd+Float+
}
// If exact and trailing '.', just cut that
else
{
let
max_i
=
buf
.len
()
-
1
;
if
*
buf
.get
(
max_i
)
==
'.'
as
u8
{
if
*
buf
.get
(
max_i
)
==
b
'.'
{
buf
=
Vec
::
from_slice
(
buf
.slice
(
0
,
max_i
));
}
}
...
...
src/libstd/os.rs
浏览文件 @
3fb78e29
...
...
@@ -293,7 +293,7 @@ unsafe fn get_env_pairs() -> Vec<Vec<u8>> {
fn
env_convert
(
input
:
Vec
<
Vec
<
u8
>>
)
->
Vec
<
(
Vec
<
u8
>
,
Vec
<
u8
>
)
>
{
let
mut
pairs
=
Vec
::
new
();
for
p
in
input
.iter
()
{
let
mut
it
=
p
.as_slice
()
.splitn
(
1
,
|
b
|
*
b
==
'='
as
u8
);
let
mut
it
=
p
.as_slice
()
.splitn
(
1
,
|
b
|
*
b
==
b
'='
);
let
key
=
Vec
::
from_slice
(
it
.next
()
.unwrap
());
let
val
=
Vec
::
from_slice
(
it
.next
()
.unwrap_or
(
&
[]));
pairs
.push
((
key
,
val
));
...
...
src/libstd/path/mod.rs
浏览文件 @
3fb78e29
...
...
@@ -351,7 +351,7 @@ fn filestem<'a>(&'a self) -> Option<&'a [u8]> {
match
self
.filename
()
{
None
=>
None
,
Some
(
name
)
=>
Some
({
let
dot
=
'.'
as
u8
;
let
dot
=
b
'.'
;
match
name
.rposition_elem
(
&
dot
)
{
None
|
Some
(
0
)
=>
name
,
Some
(
1
)
if
name
==
b
".."
=>
name
,
...
...
@@ -398,7 +398,7 @@ fn extension<'a>(&'a self) -> Option<&'a [u8]> {
match
self
.filename
()
{
None
=>
None
,
Some
(
name
)
=>
{
let
dot
=
'.'
as
u8
;
let
dot
=
b
'.'
;
match
name
.rposition_elem
(
&
dot
)
{
None
|
Some
(
0
)
=>
None
,
Some
(
1
)
if
name
==
b
".."
=>
None
,
...
...
@@ -474,7 +474,7 @@ fn set_extension<T: BytesContainer>(&mut self, extension: T) {
assert
!
(
!
contains_nul
(
&
extension
));
let
val
=
self
.filename
()
.and_then
(|
name
|
{
let
dot
=
'.'
as
u8
;
let
dot
=
b
'.'
;
let
extlen
=
extension
.container_as_bytes
()
.len
();
match
(
name
.rposition_elem
(
&
dot
),
extlen
)
{
(
None
,
0
)
|
(
Some
(
0
),
0
)
=>
None
,
...
...
src/libstd/path/posix.rs
浏览文件 @
3fb78e29
...
...
@@ -237,7 +237,7 @@ fn pop(&mut self) -> bool {
match
self
.sepidx
{
None
if
b
"."
==
self
.repr
.as_slice
()
=>
false
,
None
=>
{
self
.repr
=
vec!
[
'.'
as
u8
];
self
.repr
=
vec!
[
b
'.'
];
self
.sepidx
=
None
;
true
}
...
...
src/libstd/path/windows.rs
浏览文件 @
3fb78e29
...
...
@@ -737,12 +737,12 @@ fn normalize__(s: &str, prefix: Option<PathPrefix>) -> Option<String> {
let
mut
comps
=
comps
;
match
(
comps
.is_some
(),
prefix
)
{
(
false
,
Some
(
DiskPrefix
))
=>
{
if
s
.as_bytes
()[
0
]
>=
'a'
as
u8
&&
s
.as_bytes
()[
0
]
<=
'z'
as
u8
{
if
s
.as_bytes
()[
0
]
>=
b
'a'
&&
s
.as_bytes
()[
0
]
<=
b
'z'
{
comps
=
Some
(
vec!
[]);
}
}
(
false
,
Some
(
VerbatimDiskPrefix
))
=>
{
if
s
.as_bytes
()[
4
]
>=
'a'
as
u8
&&
s
.as_bytes
()[
0
]
<=
'z'
as
u8
{
if
s
.as_bytes
()[
4
]
>=
b
'a'
&&
s
.as_bytes
()[
0
]
<=
b
'z'
{
comps
=
Some
(
vec!
[]);
}
}
...
...
@@ -1010,7 +1010,7 @@ fn parse_prefix<'a>(mut path: &'a str) -> Option<PathPrefix> {
}
else
{
// \\?\path
let
idx
=
path
.find
(
'\\'
);
if
idx
==
Some
(
2
)
&&
path
.as_bytes
()[
1
]
==
':'
as
u8
{
if
idx
==
Some
(
2
)
&&
path
.as_bytes
()[
1
]
==
b
':'
{
let
c
=
path
.as_bytes
()[
0
];
if
c
.is_ascii
()
&&
(
c
as
char
)
.is_alphabetic
()
{
// \\?\C:\ path
...
...
@@ -1033,7 +1033,7 @@ fn parse_prefix<'a>(mut path: &'a str) -> Option<PathPrefix> {
}
_
=>
()
}
}
else
if
path
.len
()
>
1
&&
path
.as_bytes
()[
1
]
==
':'
as
u8
{
}
else
if
path
.len
()
>
1
&&
path
.as_bytes
()[
1
]
==
b
':'
{
// C:
let
c
=
path
.as_bytes
()[
0
];
if
c
.is_ascii
()
&&
(
c
as
char
)
.is_alphabetic
()
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录