Auto merge of #31608 - frewsxcv:osstring-simple-functions, r=alexcrichton

https://github.com/rust-lang/rust/issues/29453
This commit is contained in:
bors
2016-02-20 18:35:16 +00:00
4 changed files with 268 additions and 0 deletions

View File

@@ -18,12 +18,25 @@ use string::String;
use result::Result;
use option::Option;
use mem;
use sys_common::{AsInner, IntoInner};
#[derive(Clone, Hash)]
pub struct Buf {
pub inner: Wtf8Buf
}
impl IntoInner<Wtf8Buf> for Buf {
fn into_inner(self) -> Wtf8Buf {
self.inner
}
}
impl AsInner<Wtf8> for Buf {
fn as_inner(&self) -> &Wtf8 {
&self.inner
}
}
impl Debug for Buf {
fn fmt(&self, formatter: &mut fmt::Formatter) -> Result<(), fmt::Error> {
self.as_slice().fmt(formatter)
@@ -41,6 +54,20 @@ impl Debug for Slice {
}
impl Buf {
pub fn with_capacity(capacity: usize) -> Buf {
Buf {
inner: Wtf8Buf::with_capacity(capacity)
}
}
pub fn clear(&mut self) {
self.inner.clear()
}
pub fn capacity(&self) -> usize {
self.inner.capacity()
}
pub fn from_string(s: String) -> Buf {
Buf { inner: Wtf8Buf::from_string(s) }
}
@@ -56,6 +83,14 @@ impl Buf {
pub fn push_slice(&mut self, s: &Slice) {
self.inner.push_wtf8(&s.inner)
}
pub fn reserve(&mut self, additional: usize) {
self.inner.reserve(additional)
}
pub fn reserve_exact(&mut self, additional: usize) {
self.inner.reserve_exact(additional)
}
}
impl Slice {