core: adding str::as_slice .. most likely broken
This commit is contained in:
parent
99d2ec3ad1
commit
099d080233
@ -23,6 +23,7 @@ export
|
||||
as_buf,
|
||||
as_c_str,
|
||||
unpack_slice,
|
||||
as_slice,
|
||||
|
||||
// Adding things to and removing things from a string
|
||||
push_char,
|
||||
@ -1620,6 +1621,16 @@ pure fn unpack_slice<T>(s: str/&, f: fn(*u8, uint) -> T) -> T {
|
||||
}
|
||||
}
|
||||
|
||||
pure fn as_slice<T>(s: str,
|
||||
start: uint, end: uint,
|
||||
f: fn(str/&) -> T) -> T unsafe {
|
||||
assert (start <= end);
|
||||
assert (end <= len(s));
|
||||
let p = ptr::addr_of(s);
|
||||
f(::unsafe::reinterpret_cast(
|
||||
(ptr::offset(p, start), (end - start) * sys::size_of::<u8>())))
|
||||
}
|
||||
|
||||
#[doc = "
|
||||
Reserves capacity for exactly `n` bytes in the given string, not including
|
||||
the null terminator.
|
||||
|
Loading…
x
Reference in New Issue
Block a user