Skip to content

Commit fe62ff4

Browse files
committed
De-mode std::{treemap,sort}. Part of #3583.
1 parent 86041c4 commit fe62ff4

File tree

3 files changed

+11
-25
lines changed

3 files changed

+11
-25
lines changed

src/libstd/sort.rs

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,6 @@
55
use vec::{len, push};
66
use core::cmp::{Eq, Ord};
77

8-
export le;
9-
export merge_sort;
10-
export quick_sort;
11-
export quick_sort3;
12-
export Sort;
13-
148
type Le<T> = pure fn(v1: &T, v2: &T) -> bool;
159

1610
/**
@@ -19,7 +13,7 @@ type Le<T> = pure fn(v1: &T, v2: &T) -> bool;
1913
* Has worst case O(n log n) performance, best case O(n), but
2014
* is not space efficient. This is a stable sort.
2115
*/
22-
fn merge_sort<T: Copy>(le: Le<T>, v: &[const T]) -> ~[T] {
16+
pub fn merge_sort<T: Copy>(le: Le<T>, v: &[const T]) -> ~[T] {
2317
type Slice = (uint, uint);
2418

2519
return merge_sort_(le, v, (0u, len(v)));
@@ -93,7 +87,7 @@ fn qsort<T: Copy>(compare_func: Le<T>, arr: &[mut T], left: uint,
9387
* Has worst case O(n^2) performance, average case O(n log n).
9488
* This is an unstable sort.
9589
*/
96-
fn quick_sort<T: Copy>(compare_func: Le<T>, arr: &[mut T]) {
90+
pub fn quick_sort<T: Copy>(compare_func: Le<T>, arr: &[mut T]) {
9791
if len::<T>(arr) == 0u { return; }
9892
qsort::<T>(compare_func, arr, 0u, len::<T>(arr) - 1u);
9993
}
@@ -155,12 +149,12 @@ fn qsort3<T: Copy Ord Eq>(arr: &[mut T], left: int, right: int) {
155149
*
156150
* This is an unstable sort.
157151
*/
158-
fn quick_sort3<T: Copy Ord Eq>(arr: &[mut T]) {
152+
pub fn quick_sort3<T: Copy Ord Eq>(arr: &[mut T]) {
159153
if arr.len() <= 1 { return; }
160154
qsort3(arr, 0, (arr.len() - 1) as int);
161155
}
162156

163-
trait Sort {
157+
pub trait Sort {
164158
fn qsort(self);
165159
}
166160

@@ -274,7 +268,7 @@ mod tests {
274268

275269
fn check_sort(v1: &[int], v2: &[int]) {
276270
let len = vec::len::<int>(v1);
277-
pure fn le(a: &int, b: &int) -> bool { *a <= *b }
271+
pub pure fn le(a: &int, b: &int) -> bool { *a <= *b }
278272
let f = le;
279273
let v3 = merge_sort::<int>(f, v1);
280274
let mut i = 0u;
@@ -304,7 +298,7 @@ mod tests {
304298

305299
#[test]
306300
fn test_merge_sort_mutable() {
307-
pure fn le(a: &int, b: &int) -> bool { *a <= *b }
301+
pub pure fn le(a: &int, b: &int) -> bool { *a <= *b }
308302
let v1 = ~[mut 3, 2, 1];
309303
let v2 = merge_sort(le, v1);
310304
assert v2 == ~[1, 2, 3];

src/libstd/std.rc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,8 @@ mod map;
9898
mod rope;
9999
#[legacy_exports]
100100
mod smallintmap;
101-
#[legacy_exports]
102101
mod sort;
103-
#[legacy_exports]
104102
mod treemap;
105-
#[legacy_exports]
106103

107104
// And ... other stuff
108105

src/libstd/treemap.rs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,7 @@ use core::cmp::{Eq, Ord};
1212
use core::option::{Some, None};
1313
use Option = core::Option;
1414

15-
export TreeMap;
16-
export insert;
17-
export find;
18-
export traverse;
19-
20-
type TreeMap<K, V> = @mut TreeEdge<K, V>;
15+
pub type TreeMap<K, V> = @mut TreeEdge<K, V>;
2116

2217
type TreeEdge<K, V> = Option<@TreeNode<K, V>>;
2318

@@ -29,10 +24,10 @@ enum TreeNode<K, V> = {
2924
};
3025

3126
/// Create a treemap
32-
fn TreeMap<K, V>() -> TreeMap<K, V> { @mut None }
27+
pub fn TreeMap<K, V>() -> TreeMap<K, V> { @mut None }
3328

3429
/// Insert a value into the map
35-
fn insert<K: Copy Eq Ord, V: Copy>(m: &mut TreeEdge<K, V>, +k: K, +v: V) {
30+
pub fn insert<K: Copy Eq Ord, V: Copy>(m: &mut TreeEdge<K, V>, +k: K, +v: V) {
3631
match copy *m {
3732
None => {
3833
*m = Some(@TreeNode({key: k,
@@ -54,7 +49,7 @@ fn insert<K: Copy Eq Ord, V: Copy>(m: &mut TreeEdge<K, V>, +k: K, +v: V) {
5449
}
5550

5651
/// Find a value based on the key
57-
fn find<K: Copy Eq Ord, V: Copy>(m: &const TreeEdge<K, V>, +k: K)
52+
pub fn find<K: Copy Eq Ord, V: Copy>(m: &const TreeEdge<K, V>, +k: K)
5853
-> Option<V> {
5954
match copy *m {
6055
None => None,
@@ -73,7 +68,7 @@ fn find<K: Copy Eq Ord, V: Copy>(m: &const TreeEdge<K, V>, +k: K)
7368
}
7469

7570
/// Visit all pairs in the map in order.
76-
fn traverse<K, V: Copy>(m: &const TreeEdge<K, V>, f: fn((&K), (&V))) {
71+
pub fn traverse<K, V: Copy>(m: &const TreeEdge<K, V>, f: fn((&K), (&V))) {
7772
match copy *m {
7873
None => (),
7974
Some(node) => {

0 commit comments

Comments
 (0)