about summary refs log tree commit diff
path: root/src/libstd/sort.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd/sort.rs')
-rw-r--r--src/libstd/sort.rs9
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]) {