Delete send_str, rewrite clients on top of MaybeOwned<'static>
Declare a `type SendStr = MaybeOwned<'static>` to ease readibility of types that needed the old SendStr behavior. Implement all the traits for MaybeOwned that SendStr used to implement.
This commit is contained in:
parent
122c94d2f3
commit
086c0dd33f
14 changed files with 310 additions and 391 deletions
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
fn main() {
|
||||
let mut t = ::std::task::task();
|
||||
t.name("send name".to_send_str());
|
||||
t.name("send name".into_maybe_owned());
|
||||
t.try(proc() {
|
||||
fail!("test");
|
||||
3
|
||||
|
|
|
|||
|
|
@ -13,45 +13,44 @@ use std::cmp::{TotalEq, Ord, TotalOrd, Equiv};
|
|||
use std::cmp::Equal;
|
||||
use std::container::{Container, Map, MutableMap};
|
||||
use std::default::Default;
|
||||
use std::send_str::{SendStr, SendStrOwned, SendStrStatic};
|
||||
use std::str::Str;
|
||||
use std::str::{Str, SendStr, Owned, Slice};
|
||||
use std::to_str::ToStr;
|
||||
use std::hashmap::HashMap;
|
||||
use std::option::Some;
|
||||
|
||||
pub fn main() {
|
||||
let mut map: HashMap<SendStr, uint> = HashMap::new();
|
||||
assert!(map.insert(SendStrStatic("foo"), 42));
|
||||
assert!(!map.insert(SendStrOwned(~"foo"), 42));
|
||||
assert!(!map.insert(SendStrStatic("foo"), 42));
|
||||
assert!(!map.insert(SendStrOwned(~"foo"), 42));
|
||||
assert!(map.insert(Slice("foo"), 42));
|
||||
assert!(!map.insert(Owned(~"foo"), 42));
|
||||
assert!(!map.insert(Slice("foo"), 42));
|
||||
assert!(!map.insert(Owned(~"foo"), 42));
|
||||
|
||||
assert!(!map.insert(SendStrStatic("foo"), 43));
|
||||
assert!(!map.insert(SendStrOwned(~"foo"), 44));
|
||||
assert!(!map.insert(SendStrStatic("foo"), 45));
|
||||
assert!(!map.insert(SendStrOwned(~"foo"), 46));
|
||||
assert!(!map.insert(Slice("foo"), 43));
|
||||
assert!(!map.insert(Owned(~"foo"), 44));
|
||||
assert!(!map.insert(Slice("foo"), 45));
|
||||
assert!(!map.insert(Owned(~"foo"), 46));
|
||||
|
||||
let v = 46;
|
||||
|
||||
assert_eq!(map.find(&SendStrOwned(~"foo")), Some(&v));
|
||||
assert_eq!(map.find(&SendStrStatic("foo")), Some(&v));
|
||||
assert_eq!(map.find(&Owned(~"foo")), Some(&v));
|
||||
assert_eq!(map.find(&Slice("foo")), Some(&v));
|
||||
|
||||
let (a, b, c, d) = (50, 51, 52, 53);
|
||||
|
||||
assert!(map.insert(SendStrStatic("abc"), a));
|
||||
assert!(map.insert(SendStrOwned(~"bcd"), b));
|
||||
assert!(map.insert(SendStrStatic("cde"), c));
|
||||
assert!(map.insert(SendStrOwned(~"def"), d));
|
||||
assert!(map.insert(Slice("abc"), a));
|
||||
assert!(map.insert(Owned(~"bcd"), b));
|
||||
assert!(map.insert(Slice("cde"), c));
|
||||
assert!(map.insert(Owned(~"def"), d));
|
||||
|
||||
assert!(!map.insert(SendStrStatic("abc"), a));
|
||||
assert!(!map.insert(SendStrOwned(~"bcd"), b));
|
||||
assert!(!map.insert(SendStrStatic("cde"), c));
|
||||
assert!(!map.insert(SendStrOwned(~"def"), d));
|
||||
assert!(!map.insert(Slice("abc"), a));
|
||||
assert!(!map.insert(Owned(~"bcd"), b));
|
||||
assert!(!map.insert(Slice("cde"), c));
|
||||
assert!(!map.insert(Owned(~"def"), d));
|
||||
|
||||
assert!(!map.insert(SendStrOwned(~"abc"), a));
|
||||
assert!(!map.insert(SendStrStatic("bcd"), b));
|
||||
assert!(!map.insert(SendStrOwned(~"cde"), c));
|
||||
assert!(!map.insert(SendStrStatic("def"), d));
|
||||
assert!(!map.insert(Owned(~"abc"), a));
|
||||
assert!(!map.insert(Slice("bcd"), b));
|
||||
assert!(!map.insert(Owned(~"cde"), c));
|
||||
assert!(!map.insert(Slice("def"), d));
|
||||
|
||||
assert_eq!(map.find_equiv(&("abc")), Some(&a));
|
||||
assert_eq!(map.find_equiv(&("bcd")), Some(&b));
|
||||
|
|
@ -63,13 +62,13 @@ pub fn main() {
|
|||
assert_eq!(map.find_equiv(&(~"cde")), Some(&c));
|
||||
assert_eq!(map.find_equiv(&(~"def")), Some(&d));
|
||||
|
||||
assert_eq!(map.find_equiv(&SendStrStatic("abc")), Some(&a));
|
||||
assert_eq!(map.find_equiv(&SendStrStatic("bcd")), Some(&b));
|
||||
assert_eq!(map.find_equiv(&SendStrStatic("cde")), Some(&c));
|
||||
assert_eq!(map.find_equiv(&SendStrStatic("def")), Some(&d));
|
||||
assert_eq!(map.find_equiv(&Slice("abc")), Some(&a));
|
||||
assert_eq!(map.find_equiv(&Slice("bcd")), Some(&b));
|
||||
assert_eq!(map.find_equiv(&Slice("cde")), Some(&c));
|
||||
assert_eq!(map.find_equiv(&Slice("def")), Some(&d));
|
||||
|
||||
assert_eq!(map.find_equiv(&SendStrOwned(~"abc")), Some(&a));
|
||||
assert_eq!(map.find_equiv(&SendStrOwned(~"bcd")), Some(&b));
|
||||
assert_eq!(map.find_equiv(&SendStrOwned(~"cde")), Some(&c));
|
||||
assert_eq!(map.find_equiv(&SendStrOwned(~"def")), Some(&d));
|
||||
assert_eq!(map.find_equiv(&Owned(~"abc")), Some(&a));
|
||||
assert_eq!(map.find_equiv(&Owned(~"bcd")), Some(&b));
|
||||
assert_eq!(map.find_equiv(&Owned(~"cde")), Some(&c));
|
||||
assert_eq!(map.find_equiv(&Owned(~"def")), Some(&d));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,57 +15,56 @@ use std::cmp::{TotalEq, Ord, TotalOrd, Equiv};
|
|||
use std::cmp::Equal;
|
||||
use std::container::{Container, Map, MutableMap};
|
||||
use std::default::Default;
|
||||
use std::send_str::{SendStr, SendStrOwned, SendStrStatic};
|
||||
use std::str::Str;
|
||||
use std::str::{Str, SendStr, Owned, Slice};
|
||||
use std::to_str::ToStr;
|
||||
use self::collections::TreeMap;
|
||||
use std::option::Some;
|
||||
|
||||
pub fn main() {
|
||||
let mut map: TreeMap<SendStr, uint> = TreeMap::new();
|
||||
assert!(map.insert(SendStrStatic("foo"), 42));
|
||||
assert!(!map.insert(SendStrOwned(~"foo"), 42));
|
||||
assert!(!map.insert(SendStrStatic("foo"), 42));
|
||||
assert!(!map.insert(SendStrOwned(~"foo"), 42));
|
||||
assert!(map.insert(Slice("foo"), 42));
|
||||
assert!(!map.insert(Owned(~"foo"), 42));
|
||||
assert!(!map.insert(Slice("foo"), 42));
|
||||
assert!(!map.insert(Owned(~"foo"), 42));
|
||||
|
||||
assert!(!map.insert(SendStrStatic("foo"), 43));
|
||||
assert!(!map.insert(SendStrOwned(~"foo"), 44));
|
||||
assert!(!map.insert(SendStrStatic("foo"), 45));
|
||||
assert!(!map.insert(SendStrOwned(~"foo"), 46));
|
||||
assert!(!map.insert(Slice("foo"), 43));
|
||||
assert!(!map.insert(Owned(~"foo"), 44));
|
||||
assert!(!map.insert(Slice("foo"), 45));
|
||||
assert!(!map.insert(Owned(~"foo"), 46));
|
||||
|
||||
let v = 46;
|
||||
|
||||
assert_eq!(map.find(&SendStrOwned(~"foo")), Some(&v));
|
||||
assert_eq!(map.find(&SendStrStatic("foo")), Some(&v));
|
||||
assert_eq!(map.find(&Owned(~"foo")), Some(&v));
|
||||
assert_eq!(map.find(&Slice("foo")), Some(&v));
|
||||
|
||||
let (a, b, c, d) = (50, 51, 52, 53);
|
||||
|
||||
assert!(map.insert(SendStrStatic("abc"), a));
|
||||
assert!(map.insert(SendStrOwned(~"bcd"), b));
|
||||
assert!(map.insert(SendStrStatic("cde"), c));
|
||||
assert!(map.insert(SendStrOwned(~"def"), d));
|
||||
assert!(map.insert(Slice("abc"), a));
|
||||
assert!(map.insert(Owned(~"bcd"), b));
|
||||
assert!(map.insert(Slice("cde"), c));
|
||||
assert!(map.insert(Owned(~"def"), d));
|
||||
|
||||
assert!(!map.insert(SendStrStatic("abc"), a));
|
||||
assert!(!map.insert(SendStrOwned(~"bcd"), b));
|
||||
assert!(!map.insert(SendStrStatic("cde"), c));
|
||||
assert!(!map.insert(SendStrOwned(~"def"), d));
|
||||
assert!(!map.insert(Slice("abc"), a));
|
||||
assert!(!map.insert(Owned(~"bcd"), b));
|
||||
assert!(!map.insert(Slice("cde"), c));
|
||||
assert!(!map.insert(Owned(~"def"), d));
|
||||
|
||||
assert!(!map.insert(SendStrOwned(~"abc"), a));
|
||||
assert!(!map.insert(SendStrStatic("bcd"), b));
|
||||
assert!(!map.insert(SendStrOwned(~"cde"), c));
|
||||
assert!(!map.insert(SendStrStatic("def"), d));
|
||||
assert!(!map.insert(Owned(~"abc"), a));
|
||||
assert!(!map.insert(Slice("bcd"), b));
|
||||
assert!(!map.insert(Owned(~"cde"), c));
|
||||
assert!(!map.insert(Slice("def"), d));
|
||||
|
||||
assert_eq!(map.find(&SendStrStatic("abc")), Some(&a));
|
||||
assert_eq!(map.find(&SendStrStatic("bcd")), Some(&b));
|
||||
assert_eq!(map.find(&SendStrStatic("cde")), Some(&c));
|
||||
assert_eq!(map.find(&SendStrStatic("def")), Some(&d));
|
||||
assert_eq!(map.find(&Slice("abc")), Some(&a));
|
||||
assert_eq!(map.find(&Slice("bcd")), Some(&b));
|
||||
assert_eq!(map.find(&Slice("cde")), Some(&c));
|
||||
assert_eq!(map.find(&Slice("def")), Some(&d));
|
||||
|
||||
assert_eq!(map.find(&SendStrOwned(~"abc")), Some(&a));
|
||||
assert_eq!(map.find(&SendStrOwned(~"bcd")), Some(&b));
|
||||
assert_eq!(map.find(&SendStrOwned(~"cde")), Some(&c));
|
||||
assert_eq!(map.find(&SendStrOwned(~"def")), Some(&d));
|
||||
assert_eq!(map.find(&Owned(~"abc")), Some(&a));
|
||||
assert_eq!(map.find(&Owned(~"bcd")), Some(&b));
|
||||
assert_eq!(map.find(&Owned(~"cde")), Some(&c));
|
||||
assert_eq!(map.find(&Owned(~"def")), Some(&d));
|
||||
|
||||
assert!(map.pop(&SendStrStatic("foo")).is_some());
|
||||
assert!(map.pop(&Slice("foo")).is_some());
|
||||
assert_eq!(map.move_iter().map(|(k, v)| k.to_str() + v.to_str())
|
||||
.to_owned_vec()
|
||||
.concat(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue