about summary refs log tree commit diff
path: root/src/lib/vec.rs
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2011-08-30 17:17:42 -0700
committerTim Chevalier <chevalier@alum.wellesley.edu>2011-08-30 17:17:42 -0700
commit9f7ed2f054c72dd0989b42ed3e6a839e64d9fa1a (patch)
treef8228d65358f4fd24965d5406c6f72b58a01b1f9 /src/lib/vec.rs
parent4fc72c21302d907a17affeaa4b72e114474410b0 (diff)
downloadrust-9f7ed2f054c72dd0989b42ed3e6a839e64d9fa1a.tar.gz
rust-9f7ed2f054c72dd0989b42ed3e6a839e64d9fa1a.zip
Add a total version of vec::last that has a precondition
Diffstat (limited to 'src/lib/vec.rs')
-rw-r--r--src/lib/vec.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/vec.rs b/src/lib/vec.rs
index daa1d499d58..8a20345b864 100644
--- a/src/lib/vec.rs
+++ b/src/lib/vec.rs
@@ -97,6 +97,11 @@ fn last<@T>(v: &[mutable? T]) -> option::t<T> {
     ret some(v[len(v) - 1u]);
 }
 
+/// Returns the last element of a non-empty vector `v`.
+fn last_total<@T>(v: &[mutable? T]) : is_not_empty(v) -> T {
+    ret v[len(v) - 1u];
+}
+
 /// Returns a copy of the elements from [`start`..`end`) from `v`.
 fn slice<@T>(v: &[mutable? T], start: uint, end: uint) -> [T] {
     assert (start <= end);