diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/libcore/finally.rs (renamed from src/libstd/unstable/finally.rs) | 6 | ||||
| -rw-r--r-- | src/libcore/lib.rs | 1 | ||||
| -rw-r--r-- | src/libstd/unstable/mod.rs | 3 |
3 files changed, 9 insertions, 1 deletions
diff --git a/src/libstd/unstable/finally.rs b/src/libcore/finally.rs index 3d00c0ac74a..6d02e6e3a17 100644 --- a/src/libstd/unstable/finally.rs +++ b/src/libcore/finally.rs @@ -30,11 +30,17 @@ use std::unstable::finally::Finally; ``` */ +#![experimental] + use ops::Drop; #[cfg(test)] use task::failing; +/// A trait for executing a destructor unconditionally after a block of code, +/// regardless of whether the blocked fails. pub trait Finally<T> { + /// Executes this object, unconditionally running `dtor` after this block of + /// code has run. fn finally(&mut self, dtor: ||) -> T; } diff --git a/src/libcore/lib.rs b/src/libcore/lib.rs index dd64148aa2b..5206ba1f32a 100644 --- a/src/libcore/lib.rs +++ b/src/libcore/lib.rs @@ -37,4 +37,5 @@ pub mod container; /* Core types and methods on primitives */ +pub mod finally; pub mod char; diff --git a/src/libstd/unstable/mod.rs b/src/libstd/unstable/mod.rs index 372fcc396b1..81aa5506ed8 100644 --- a/src/libstd/unstable/mod.rs +++ b/src/libstd/unstable/mod.rs @@ -13,9 +13,10 @@ use prelude::*; use libc::uintptr_t; +pub use core::finally; + pub mod dynamic_lib; -pub mod finally; pub mod simd; pub mod sync; pub mod mutex; |
