about summary refs log tree commit diff
path: root/src/lib
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2010-11-05 10:41:23 -0700
committerPatrick Walton <pcwalton@mimiga.net>2010-11-05 10:41:23 -0700
commit2fcf81cc4b132bf7d862f5144d282391b38d0c15 (patch)
treed6e2c25528a83959111707cd7e29b4b30b93cf6a /src/lib
parenta58016d43e85721d50ff2a387ddab5bab0a1c13e (diff)
Revert "Move the option type to its own module"
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/deque.rs18
-rw-r--r--src/lib/list.rs8
-rw-r--r--src/lib/option.rs40
-rw-r--r--src/lib/std.rc1
-rw-r--r--src/lib/util.rs18
5 files changed, 31 insertions, 54 deletions
diff --git a/src/lib/deque.rs b/src/lib/deque.rs
index 92b1aeda13c..959339d8e04 100644
--- a/src/lib/deque.rs
+++ b/src/lib/deque.rs
@@ -2,7 +2,7 @@
  * A deque, for fun.  Untested as of yet.  Likely buggy.
  */
 
-import std.option;
+import std.util;
 import std._vec;
 import std._int;
 
@@ -23,7 +23,7 @@ type t[T] = obj {
 
 fn create[T]() -> t[T] {
 
-    type cell[T] = mutable option.t[T];
+    type cell[T] = mutable util.option[T];
 
     let uint initial_capacity = 32u; // 2^5
 
@@ -39,7 +39,7 @@ fn create[T]() -> t[T] {
             if (i < nelts) {
                 ret old.((lo + i) % nelts);
             } else {
-                ret option.none;
+                ret util.none[T];
             }
         }
 
@@ -50,7 +50,7 @@ fn create[T]() -> t[T] {
 
     fn get[T](vec[cell[T]] elts, uint i) -> T {
         alt (elts.(i)) {
-            case (option.some[T](?t)) { ret t; }
+            case (util.some[T](?t)) { ret t; }
             case (_) { fail; }
         }
     }
@@ -77,7 +77,7 @@ fn create[T]() -> t[T] {
                     hi = nelts;
                 }
 
-                elts.(lo) = option.some[T](t);
+                elts.(lo) = util.some[T](t);
                 nelts += 1u;
             }
 
@@ -88,7 +88,7 @@ fn create[T]() -> t[T] {
                     hi = nelts;
                 }
 
-                elts.(hi) = option.some[T](t);
+                elts.(hi) = util.some[T](t);
                 hi = (hi + 1u) % _vec.len[cell[T]](elts);
                 nelts += 1u;
             }
@@ -99,7 +99,7 @@ fn create[T]() -> t[T] {
              */
             fn pop_front() -> T {
                 let T t = get[T](elts, lo);
-                elts.(lo) = option.none[T];
+                elts.(lo) = util.none[T];
                 lo = (lo + 1u) % _vec.len[cell[T]](elts);
                 nelts -= 1u;
                 ret t;
@@ -113,7 +113,7 @@ fn create[T]() -> t[T] {
                 }
 
                 let T t = get[T](elts, hi);
-                elts.(hi) = option.none[T];
+                elts.(hi) = util.none[T];
                 nelts -= 1u;
                 ret t;
             }
@@ -132,7 +132,7 @@ fn create[T]() -> t[T] {
             }
 
         }
-    let vec[cell[T]] v = _vec.init_elt[cell[T]](option.none[T],
+    let vec[cell[T]] v = _vec.init_elt[cell[T]](util.none[T],
                                                 initial_capacity);
 
     ret deque[T](0u, 0u, 0u, v);
diff --git a/src/lib/list.rs b/src/lib/list.rs
index 8e0380d1e22..da8d3c0aff7 100644
--- a/src/lib/list.rs
+++ b/src/lib/list.rs
@@ -1,7 +1,7 @@
 
-import option;
-import option.some;
-import option.none;
+import util.option;
+import util.some;
+import util.none;
 
 // FIXME: It would probably be more appealing to define this as
 // type list[T] = rec(T hd, option[@list[T]] tl), but at the moment
@@ -27,7 +27,7 @@ fn foldl[T,U](&list[T] ls, &U u, fn(&T t, U u) -> U f) -> U {
 }
 
 fn find[T,U](&list[T] ls,
-             (fn(&T) -> option.t[U]) f) -> option.t[U] {
+             (fn(&T) -> option[U]) f) -> option[U] {
   alt(ls) {
     case (cons[T](?hd, ?tl)) {
         alt (f(hd)) {
diff --git a/src/lib/option.rs b/src/lib/option.rs
deleted file mode 100644
index dbf08b3e5f3..00000000000
--- a/src/lib/option.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-// lib/option.rs
-
-tag t[T] {
-    none;
-    some(T);
-}
-
-type operator[T, U] = fn(&T) -> U;
-
-fn get[T](&t[T] opt) -> T {
-    alt (opt) {
-        case (some[T](?x)) {
-            ret x;
-        }
-        case (none[T]) {
-            fail;
-        }
-    }
-}
-
-fn map[T, U](&operator[T, U] f, &t[T] opt) -> t[U] {
-    alt (opt) {
-        case (some[T](?x)) {
-            ret some[U](f(x));
-        }
-        case (none[T]) {
-            ret none[U];
-        }
-    }
-}
-
-// Local Variables:
-// mode: rust;
-// fill-column: 78;
-// indent-tabs-mode: nil
-// c-basic-offset: 4
-// buffer-file-coding-system: utf-8-unix
-// compile-command: "make -k -C .. 2>&1 | sed -e 's/\\/x\\//x:\\//g'";
-// End:
-
diff --git a/src/lib/std.rc b/src/lib/std.rc
index e00f2ef2eb2..16cfbb7530d 100644
--- a/src/lib/std.rc
+++ b/src/lib/std.rc
@@ -20,7 +20,6 @@ mod _task;
 
 // Utility modules.
 
-mod option;
 mod util;
 
 // Authorize various rule-bendings.
diff --git a/src/lib/util.rs b/src/lib/util.rs
index 72844d5f830..f6e1327be15 100644
--- a/src/lib/util.rs
+++ b/src/lib/util.rs
@@ -1,3 +1,21 @@
+tag option[T] {
+    none;
+    some(T);
+}
+
+type operator[T, U] = fn(&T) -> U;
+
+fn option_map[T, U](&operator[T, U] f, &option[T] opt) -> option[U] {
+    alt (opt) {
+        case (some[T](?x)) {
+            ret some[U](f(x));
+        }
+        case (none[T]) {
+            ret none[U];
+        }
+    }
+}
+
 fn id[T](&T x) -> T {
     ret x;
 }