From ba707fb3a0735c0ca19baac426b88218c656a34b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Adolfo=20Ochagav=C3=ADa?= Date: Sat, 19 Jul 2014 11:34:51 +0200 Subject: [PATCH] Remove OwnedStr trait This trait was only implemented by `String`. It provided the methods `into_bytes` and `append`, both of which **are already implemented as normal methods** of `String` (not as trait methods). This change improves the consistency of strings. This shouldn't break any code, except if somebody has implemented `OwnedStr` for a user-defined type. --- src/libcollections/str.rs | 29 ----------------------------- src/libstd/ascii.rs | 2 +- src/libstd/os.rs | 4 ---- src/libstd/prelude.rs | 2 +- 4 files changed, 2 insertions(+), 35 deletions(-) diff --git a/src/libcollections/str.rs b/src/libcollections/str.rs index c0e903677de..ae1fb87ef7f 100644 --- a/src/libcollections/str.rs +++ b/src/libcollections/str.rs @@ -603,11 +603,6 @@ pub unsafe fn from_byte(u: u8) -> String { from_utf8_owned(vec![u]) } - /// Sets the length of a string - /// - /// This will explicitly set the size of the string, without actually - /// modifying its buffers, so it is up to the caller to ensure that - /// the string is actually the specified size. #[test] fn test_from_buf_len() { use slice::ImmutableVector; @@ -785,30 +780,6 @@ fn into_string(self) -> String { } } -/// Methods for owned strings -pub trait OwnedStr { - /// Consumes the string, returning the underlying byte buffer. - /// - /// The buffer does not have a null terminator. - fn into_bytes(self) -> Vec; - - /// Pushes the given string onto this string, returning the concatenation of the two strings. - fn append(self, rhs: &str) -> String; -} - -impl OwnedStr for String { - #[inline] - fn into_bytes(self) -> Vec { - unsafe { mem::transmute(self) } - } - - #[inline] - fn append(mut self, rhs: &str) -> String { - self.push_str(rhs); - self - } -} - #[cfg(test)] mod tests { use std::iter::AdditiveIterator; diff --git a/src/libstd/ascii.rs b/src/libstd/ascii.rs index 02cb5dd245b..bcc0761d92a 100644 --- a/src/libstd/ascii.rs +++ b/src/libstd/ascii.rs @@ -20,7 +20,7 @@ use mem; use option::{Option, Some, None}; use slice::{ImmutableVector, MutableVector, Vector}; -use str::{OwnedStr, Str, StrAllocating, StrSlice}; +use str::{Str, StrAllocating, StrSlice}; use string::String; use to_string::IntoStr; use vec::Vec; diff --git a/src/libstd/os.rs b/src/libstd/os.rs index f71f1d22d00..ca76be40cb5 100644 --- a/src/libstd/os.rs +++ b/src/libstd/os.rs @@ -56,8 +56,6 @@ use c_str::ToCStr; #[cfg(unix)] use libc::c_char; -#[cfg(windows)] -use str::OwnedStr; /// Get the number of cores available pub fn num_cpus() -> uint { @@ -708,8 +706,6 @@ fn load_self() -> Option> { #[cfg(windows)] fn load_self() -> Option> { - use str::OwnedStr; - unsafe { use os::win32::fill_utf16_buf_and_decode; fill_utf16_buf_and_decode(|buf, sz| { diff --git a/src/libstd/prelude.rs b/src/libstd/prelude.rs index 0ce7497cf30..96d5c0785f4 100644 --- a/src/libstd/prelude.rs +++ b/src/libstd/prelude.rs @@ -76,7 +76,7 @@ #[doc(no_inline)] pub use path::{GenericPath, Path, PosixPath, WindowsPath}; #[doc(no_inline)] pub use ptr::RawPtr; #[doc(no_inline)] pub use io::{Buffer, Writer, Reader, Seek}; -#[doc(no_inline)] pub use str::{Str, StrVector, StrSlice, OwnedStr}; +#[doc(no_inline)] pub use str::{Str, StrVector, StrSlice}; #[doc(no_inline)] pub use str::{IntoMaybeOwned, StrAllocating, UnicodeStrSlice}; #[doc(no_inline)] pub use to_string::{ToString, IntoStr}; #[doc(no_inline)] pub use tuple::{Tuple1, Tuple2, Tuple3, Tuple4}; -- 2.44.0