about summary refs log tree commit diff
path: root/src/libextra
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2013-07-08 16:21:09 -0700
committerGraydon Hoare <graydon@mozilla.com>2013-07-11 13:15:52 -0700
commitbf1f69c1565acfb33ea02389e2c6d6c87ee63e3a (patch)
treeb5c081966053887ae31d144df197450ce8bea4c8 /src/libextra
parent9e67bc37ff0854fbd2b27d3e5ae73639b490cbad (diff)
downloadrust-bf1f69c1565acfb33ea02389e2c6d6c87ee63e3a.tar.gz
rust-bf1f69c1565acfb33ea02389e2c6d6c87ee63e3a.zip
extra: add ToJson for TreeMap.
Diffstat (limited to 'src/libextra')
-rw-r--r--src/libextra/json.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libextra/json.rs b/src/libextra/json.rs
index 06b6d0cb29e..3567d5001bd 100644
--- a/src/libextra/json.rs
+++ b/src/libextra/json.rs
@@ -27,6 +27,7 @@ use std::to_str;
 use serialize::Encodable;
 use serialize;
 use sort::Sort;
+use treemap::TreeMap;
 
 /// Represents a json value
 pub enum Json {
@@ -1340,6 +1341,16 @@ impl<A:ToJson + Copy> ToJson for HashMap<~str, A> {
     }
 }
 
+impl<A:ToJson + Copy> ToJson for TreeMap<~str, A> {
+    fn to_json(&self) -> Json {
+        let mut d = HashMap::new();
+        for self.iter().advance |(key, value)| {
+            d.insert(copy *key, value.to_json());
+        }
+        Object(~d)
+    }
+}
+
 impl<A:ToJson> ToJson for Option<A> {
     fn to_json(&self) -> Json {
         match *self {