}
pub type List = ~[Json];
-pub type Object = HashMap<~str, Json>;
+pub type Object = TreeMap<~str, Json>;
#[deriving(Eq)]
/// If an error occurs while parsing some JSON, this is the structure which is
self.bump();
self.parse_whitespace();
- let mut values = ~HashMap::new();
+ let mut values = ~TreeMap::new();
if self.ch == '}' {
self.bump();
let len = match self.stack.pop() {
Object(obj) => {
let len = obj.len();
- for obj.consume().advance |(key, value)| {
+ for obj.consume_iter().advance |(key, value)| {
self.stack.push(value);
self.stack.push(String(key));
}
fn to_json(&self) -> Json { List(self.map(|elt| elt.to_json())) }
}
-impl<A:ToJson> ToJson for HashMap<~str, A> {
+impl<A:ToJson> ToJson for TreeMap<~str, A> {
fn to_json(&self) -> Json {
- let mut d = HashMap::new();
+ let mut d = TreeMap::new();
for self.iter().advance |(key, value)| {
d.insert((*key).clone(), value.to_json());
}
}
}
-impl<A:ToJson> ToJson for TreeMap<~str, A> {
+impl<A:ToJson> ToJson for HashMap<~str, A> {
fn to_json(&self) -> Json {
- let mut d = HashMap::new();
+ let mut d = TreeMap::new();
for self.iter().advance |(key, value)| {
d.insert((*key).clone(), value.to_json());
}
use super::*;
- use std::hashmap::HashMap;
use std::io;
use std::result;
- use extra::serialize::Decodable;
+ use serialize::Decodable;
+ use treemap::TreeMap;
#[deriving(Eq, Encodable, Decodable)]
enum Animal {
}
fn mk_object(items: &[(~str, Json)]) -> Json {
- let mut d = ~HashMap::new();
+ let mut d = ~TreeMap::new();
for items.iter().advance |item| {
match *item {
fn test_decode_map() {
let s = ~"{\"a\": \"Dog\", \"b\": [\"Frog\", \"Henry\", 349]}";
let mut decoder = Decoder(from_str(s).unwrap());
- let mut map: HashMap<~str, Animal> = Decodable::decode(&mut decoder);
+ let mut map: TreeMap<~str, Animal> = Decodable::decode(&mut decoder);
assert_eq!(map.pop(&~"a"), Some(Dog));
assert_eq!(map.pop(&~"b"), Some(Frog(~"Henry", 349)));
use std::cell::Cell;
use std::comm::{PortOne, oneshot, send_one, recv_one};
use std::either::{Either, Left, Right};
-use std::hashmap::HashMap;
use std::io;
use std::result;
use std::run;
}
let cx = Context::new(RWARC(Database::new(Path("db.json"))),
- Logger::new(), HashMap::new());
+ Logger::new(), TreeMap::new());
let s = do cx.with_prep("test1") |prep| {
prep.declare_input("file", pth.to_str(), digest_file(&pth));