diff options
| author | Tim Chevalier <chevalier@alum.wellesley.edu> | 2011-08-30 17:17:42 -0700 |
|---|---|---|
| committer | Tim Chevalier <chevalier@alum.wellesley.edu> | 2011-08-30 17:17:42 -0700 |
| commit | 9f7ed2f054c72dd0989b42ed3e6a839e64d9fa1a (patch) | |
| tree | f8228d65358f4fd24965d5406c6f72b58a01b1f9 /src/lib/vec.rs | |
| parent | 4fc72c21302d907a17affeaa4b72e114474410b0 (diff) | |
| download | rust-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.rs | 5 |
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); |
