Skip to content

Commit

Permalink
specialize ToString for str
Browse files Browse the repository at this point in the history
  • Loading branch information
seanmonstar committed Mar 30, 2016
1 parent c7bdfd4 commit fc8cf9c
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
1 change: 1 addition & 0 deletions src/libcollections/lib.rs
Expand Up @@ -48,6 +48,7 @@
#![feature(placement_new_protocol)]
#![feature(shared)]
#![feature(slice_patterns)]
#![feature(specialization)]
#![feature(staged_api)]
#![feature(step_by)]
#![feature(str_char)]
Expand Down
10 changes: 9 additions & 1 deletion src/libcollections/string.rs
Expand Up @@ -1770,7 +1770,7 @@ pub trait ToString {
#[stable(feature = "rust1", since = "1.0.0")]
impl<T: fmt::Display + ?Sized> ToString for T {
#[inline]
fn to_string(&self) -> String {
default fn to_string(&self) -> String {
use core::fmt::Write;
let mut buf = String::new();
let _ = buf.write_fmt(format_args!("{}", self));
Expand All @@ -1779,6 +1779,14 @@ impl<T: fmt::Display + ?Sized> ToString for T {
}
}

#[stable(feature = "str_to_string_specialization", since = "1.9.0")]
impl ToString for str {
#[inline]
fn to_string(&self) -> String {
String::from(self)
}
}

#[stable(feature = "rust1", since = "1.0.0")]
impl AsRef<str> for String {
#[inline]
Expand Down

0 comments on commit fc8cf9c

Please sign in to comment.