diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2012-09-03 15:58:01 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2012-09-03 15:59:10 -0700 |
| commit | 8f840f9ea0a60e05d3d587d64c9e178c0af1e227 (patch) | |
| tree | 66db38922ed7b86e5a9d488c08834ac4dacb0944 /src/libstd | |
| parent | 5573ad723fc73197889f5890dc9846ba107757d9 (diff) | |
libstd: Implement a Sort trait.
This depends on the previous fix to not assert.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/sort.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/libstd/sort.rs b/src/libstd/sort.rs index 07552a0a94f..00396e0e773 100644 --- a/src/libstd/sort.rs +++ b/src/libstd/sort.rs @@ -9,6 +9,7 @@ export le; export merge_sort; export quick_sort; export quick_sort3; +export Sort; type le<T> = pure fn(v1: &T, v2: &T) -> bool; @@ -160,6 +161,14 @@ fn quick_sort3<T: copy Ord Eq>(arr: &[mut T]) { qsort3(arr, 0, (arr.len() - 1) as int); } +trait Sort { + fn qsort(self); +} + +impl<T: copy Ord Eq> &[mut T] : Sort { + fn qsort(self) { quick_sort3(self); } +} + #[cfg(test)] mod test_qsort3 { fn check_sort(v1: &[mut int], v2: &[mut int]) { |
