]> git.lizzy.rs Git - rust.git/commitdiff
Stabilize std::error
authorAaron Turon <aturon@mozilla.com>
Tue, 6 Jan 2015 17:20:40 +0000 (09:20 -0800)
committerAaron Turon <aturon@mozilla.com>
Tue, 6 Jan 2015 17:20:40 +0000 (09:20 -0800)
This commit is a first past stabilization of `std::error`:

* The module is stable.
* The `FromError` trait and impls are stable
* The `Error` trait itself is left unstable, pending current APIs and
  possible revisions during the alpha cycle.

src/libstd/error.rs

index 32e1922ae74fd62a92261c95f5fb0451da6088db..9963e4861b778772967f4274a1e59ac6aee39a49 100644 (file)
 //! }
 //! ```
 
+#![stable]
+
 use prelude::v1::*;
 
 use str::Utf8Error;
 use string::{FromUtf8Error, FromUtf16Error};
 
 /// Base functionality for all errors in Rust.
+#[unstable = "the exact API of this trait may change"]
 pub trait Error: Send {
     /// A short description of the error; usually a static string.
     fn description(&self) -> &str;
@@ -96,18 +99,21 @@ fn cause(&self) -> Option<&Error> { None }
 }
 
 /// A trait for types that can be converted from a given error type `E`.
+#[stable]
 pub trait FromError<E> {
     /// Perform the conversion.
     fn from_error(err: E) -> Self;
 }
 
 // Any type is convertable from itself
+#[stable]
 impl<E> FromError<E> for E {
     fn from_error(err: E) -> E {
         err
     }
 }
 
+#[stable]
 impl Error for Utf8Error {
     fn description(&self) -> &str {
         match *self {
@@ -119,11 +125,13 @@ fn description(&self) -> &str {
     fn detail(&self) -> Option<String> { Some(self.to_string()) }
 }
 
+#[stable]
 impl Error for FromUtf8Error {
     fn description(&self) -> &str { "invalid utf-8" }
     fn detail(&self) -> Option<String> { Some(self.to_string()) }
 }
 
+#[stable]
 impl Error for FromUtf16Error {
     fn description(&self) -> &str { "invalid utf-16" }
 }