diff --git a/phf/Cargo.toml b/phf/Cargo.toml index 56beee49..90656c63 100644 --- a/phf/Cargo.toml +++ b/phf/Cargo.toml @@ -10,8 +10,10 @@ name = "phf" path = "src/lib.rs" test = false -[dependencies] -xxhash = "*" +[dependencies.phf_shared] +path = "../phf_shared" +version = "0.0.1" [dev_dependencies.phf_mac] path = "../phf_mac" +version = "0.0.1" diff --git a/phf/src/lib.rs b/phf/src/lib.rs index fc97f637..609f8550 100644 --- a/phf/src/lib.rs +++ b/phf/src/lib.rs @@ -9,8 +9,9 @@ #[phase(plugin, link)] extern crate core; +extern crate phf_shared; -pub use shared::PhfHash; +pub use phf_shared::PhfHash; #[doc(inline)] pub use map::Map; #[doc(inline)] @@ -20,8 +21,6 @@ pub use ordered_map::OrderedMap; #[doc(inline)] pub use ordered_set::OrderedSet; -#[path="../../shared/mod.rs"] -mod shared; pub mod map; pub mod set; pub mod ordered_map; diff --git a/phf/src/map.rs b/phf/src/map.rs index 7b9c8424..002590a6 100644 --- a/phf/src/map.rs +++ b/phf/src/map.rs @@ -4,8 +4,8 @@ use core::borrow::BorrowFrom; use core::iter; use core::slice; use core::fmt; -use shared; -use shared::PhfHash; +use PhfHash; +use phf_shared; /// An immutable map constructed at compile time. /// @@ -94,7 +94,7 @@ impl Map { where T: Eq + PhfHash + BorrowFrom { let (g, f1, f2) = key.phf_hash(self.key); let (d1, d2) = self.disps[(g % (self.disps.len() as u32)) as uint]; - let entry = &self.entries[(shared::displace(f1, f2, d1, d2) % (self.entries.len() as u32)) + let entry = &self.entries[(phf_shared::displace(f1, f2, d1, d2) % (self.entries.len() as u32)) as uint]; if BorrowFrom::borrow_from(&entry.0) == key { Some((&entry.0, &entry.1)) diff --git a/phf/src/ordered_map.rs b/phf/src/ordered_map.rs index b06e2010..9d64e4b9 100644 --- a/phf/src/ordered_map.rs +++ b/phf/src/ordered_map.rs @@ -6,7 +6,7 @@ use core::slice; use core::iter; use PhfHash; -use shared; +use phf_shared; /// An order-preserving immutable map constructed at compile time. /// @@ -112,7 +112,7 @@ impl OrderedMap { where T: Eq + PhfHash + BorrowFrom { let (g, f1, f2) = key.phf_hash(self.key); let (d1, d2) = self.disps[(g % (self.disps.len() as u32)) as uint]; - let idx = self.idxs[(shared::displace(f1, f2, d1, d2) % (self.idxs.len() as u32)) as uint]; + let idx = self.idxs[(phf_shared::displace(f1, f2, d1, d2) % (self.idxs.len() as u32)) as uint]; let entry = &self.entries[idx]; if BorrowFrom::borrow_from(&entry.0) == key { diff --git a/phf/src/set.rs b/phf/src/set.rs index b4c5174f..64c2dfd4 100644 --- a/phf/src/set.rs +++ b/phf/src/set.rs @@ -3,7 +3,7 @@ use core::prelude::*; use core::borrow::BorrowFrom; use core::fmt; -use shared::PhfHash; +use PhfHash; use map; use Map; diff --git a/phf_mac/Cargo.toml b/phf_mac/Cargo.toml index f3c18571..aea1eccc 100644 --- a/phf_mac/Cargo.toml +++ b/phf_mac/Cargo.toml @@ -13,6 +13,9 @@ path = "src/lib.rs" plugin = true test = false +[dependencies.phf_shared] +path = "../phf_shared" +version = "0.0.1" + [dependencies] -xxhash = "*" time = "*" diff --git a/phf_mac/src/lib.rs b/phf_mac/src/lib.rs index 9febece5..4a289786 100644 --- a/phf_mac/src/lib.rs +++ b/phf_mac/src/lib.rs @@ -10,6 +10,7 @@ extern crate rand; extern crate syntax; extern crate time; extern crate rustc; +extern crate phf_shared; use std::collections::HashMap; use std::collections::hash_map::{Occupied, Vacant}; @@ -27,8 +28,6 @@ use rustc::plugin::Registry; use util::{Entry, Key}; use util::{generate_hash, create_map, create_set, create_ordered_map, create_ordered_set}; -#[path="../../shared/mod.rs"] -mod shared; pub mod util; #[plugin_registrar] diff --git a/phf_mac/src/util.rs b/phf_mac/src/util.rs index a0835da8..d5d1a25a 100644 --- a/phf_mac/src/util.rs +++ b/phf_mac/src/util.rs @@ -11,7 +11,7 @@ use syntax::parse::token::InternedString; use syntax::ptr::P; use rand::{Rng, SeedableRng, XorShiftRng}; -use shared::PhfHash; +use phf_shared::{mod, PhfHash}; use time; @@ -165,7 +165,7 @@ pub fn try_generate_hash(entries: &[Entry], rng: &mut XorShiftRng) -> Option"] +version = "0.0.1" +license = "MIT" +description = "Support code shared by phf and phf_mac" + +[lib] +name = "phf_shared" +path = "src/lib.rs" +test = false + +[dependencies] +xxhash = "*" diff --git a/shared/mod.rs b/phf_shared/src/lib.rs similarity index 98% rename from shared/mod.rs rename to phf_shared/src/lib.rs index d17af213..8179f8e6 100644 --- a/shared/mod.rs +++ b/phf_shared/src/lib.rs @@ -1,3 +1,5 @@ +#![feature(macro_rules)] + extern crate xxhash; extern crate core;