Deprecate MaybeOwned[Vector] in favor of Cow
This commit is contained in:
parent
48ca6d1840
commit
3293ab14e2
21 changed files with 323 additions and 169 deletions
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
fn main() {
|
||||
let r: Result<int,_> =
|
||||
::std::task::TaskBuilder::new().named("send name".into_maybe_owned())
|
||||
::std::task::TaskBuilder::new().named("send name".into_cow())
|
||||
.try(proc() {
|
||||
panic!("test");
|
||||
3i
|
||||
|
|
|
|||
|
|
@ -10,51 +10,51 @@
|
|||
|
||||
extern crate collections;
|
||||
|
||||
use std::str::{SendStr, Owned, Slice};
|
||||
use std::collections::HashMap;
|
||||
use std::option::Some;
|
||||
use std::str::SendStr;
|
||||
|
||||
pub fn main() {
|
||||
let mut map: HashMap<SendStr, uint> = HashMap::new();
|
||||
assert!(map.insert(Slice("foo"), 42).is_none());
|
||||
assert!(map.insert(Owned("foo".to_string()), 42).is_some());
|
||||
assert!(map.insert(Slice("foo"), 42).is_some());
|
||||
assert!(map.insert(Owned("foo".to_string()), 42).is_some());
|
||||
assert!(map.insert("foo".into_cow(), 42).is_none());
|
||||
assert!(map.insert("foo".to_string().into_cow(), 42).is_some());
|
||||
assert!(map.insert("foo".into_cow(), 42).is_some());
|
||||
assert!(map.insert("foo".to_string().into_cow(), 42).is_some());
|
||||
|
||||
assert!(map.insert(Slice("foo"), 43).is_some());
|
||||
assert!(map.insert(Owned("foo".to_string()), 44).is_some());
|
||||
assert!(map.insert(Slice("foo"), 45).is_some());
|
||||
assert!(map.insert(Owned("foo".to_string()), 46).is_some());
|
||||
assert!(map.insert("foo".into_cow(), 43).is_some());
|
||||
assert!(map.insert("foo".to_string().into_cow(), 44).is_some());
|
||||
assert!(map.insert("foo".into_cow(), 45).is_some());
|
||||
assert!(map.insert("foo".to_string().into_cow(), 46).is_some());
|
||||
|
||||
let v = 46;
|
||||
|
||||
assert_eq!(map.get(&Owned("foo".to_string())), Some(&v));
|
||||
assert_eq!(map.get(&Slice("foo")), Some(&v));
|
||||
assert_eq!(map.get(&"foo".to_string().into_cow()), Some(&v));
|
||||
assert_eq!(map.get(&"foo".into_cow()), Some(&v));
|
||||
|
||||
let (a, b, c, d) = (50, 51, 52, 53);
|
||||
|
||||
assert!(map.insert(Slice("abc"), a).is_none());
|
||||
assert!(map.insert(Owned("bcd".to_string()), b).is_none());
|
||||
assert!(map.insert(Slice("cde"), c).is_none());
|
||||
assert!(map.insert(Owned("def".to_string()), d).is_none());
|
||||
assert!(map.insert("abc".into_cow(), a).is_none());
|
||||
assert!(map.insert("bcd".to_string().into_cow(), b).is_none());
|
||||
assert!(map.insert("cde".into_cow(), c).is_none());
|
||||
assert!(map.insert("def".to_string().into_cow(), d).is_none());
|
||||
|
||||
assert!(map.insert(Slice("abc"), a).is_some());
|
||||
assert!(map.insert(Owned("bcd".to_string()), b).is_some());
|
||||
assert!(map.insert(Slice("cde"), c).is_some());
|
||||
assert!(map.insert(Owned("def".to_string()), d).is_some());
|
||||
assert!(map.insert("abc".into_cow(), a).is_some());
|
||||
assert!(map.insert("bcd".to_string().into_cow(), b).is_some());
|
||||
assert!(map.insert("cde".into_cow(), c).is_some());
|
||||
assert!(map.insert("def".to_string().into_cow(), d).is_some());
|
||||
|
||||
assert!(map.insert(Owned("abc".to_string()), a).is_some());
|
||||
assert!(map.insert(Slice("bcd"), b).is_some());
|
||||
assert!(map.insert(Owned("cde".to_string()), c).is_some());
|
||||
assert!(map.insert(Slice("def"), d).is_some());
|
||||
assert!(map.insert("abc".to_string().into_cow(), a).is_some());
|
||||
assert!(map.insert("bcd".into_cow(), b).is_some());
|
||||
assert!(map.insert("cde".to_string().into_cow(), c).is_some());
|
||||
assert!(map.insert("def".into_cow(), d).is_some());
|
||||
|
||||
assert_eq!(map.find_equiv("abc"), Some(&a));
|
||||
assert_eq!(map.find_equiv("bcd"), Some(&b));
|
||||
assert_eq!(map.find_equiv("cde"), Some(&c));
|
||||
assert_eq!(map.find_equiv("def"), Some(&d));
|
||||
assert_eq!(map.get("abc"), Some(&a));
|
||||
assert_eq!(map.get("bcd"), Some(&b));
|
||||
assert_eq!(map.get("cde"), Some(&c));
|
||||
assert_eq!(map.get("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.get(&"abc".into_cow()), Some(&a));
|
||||
assert_eq!(map.get(&"bcd".into_cow()), Some(&b));
|
||||
assert_eq!(map.get(&"cde".into_cow()), Some(&c));
|
||||
assert_eq!(map.get(&"def".into_cow()), Some(&d));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,56 +10,56 @@
|
|||
|
||||
extern crate collections;
|
||||
|
||||
use std::str::{SendStr, Owned, Slice};
|
||||
use std::string::ToString;
|
||||
use self::collections::TreeMap;
|
||||
use std::option::Some;
|
||||
use std::str::SendStr;
|
||||
use std::string::ToString;
|
||||
|
||||
pub fn main() {
|
||||
let mut map: TreeMap<SendStr, uint> = TreeMap::new();
|
||||
assert!(map.insert(Slice("foo"), 42).is_none());
|
||||
assert!(map.insert(Owned("foo".to_string()), 42).is_some());
|
||||
assert!(map.insert(Slice("foo"), 42).is_some());
|
||||
assert!(map.insert(Owned("foo".to_string()), 42).is_some());
|
||||
assert!(map.insert("foo".into_cow(), 42).is_none());
|
||||
assert!(map.insert("foo".to_string().into_cow(), 42).is_some());
|
||||
assert!(map.insert("foo".into_cow(), 42).is_some());
|
||||
assert!(map.insert("foo".to_string().into_cow(), 42).is_some());
|
||||
|
||||
assert!(map.insert(Slice("foo"), 43).is_some());
|
||||
assert!(map.insert(Owned("foo".to_string()), 44).is_some());
|
||||
assert!(map.insert(Slice("foo"), 45).is_some());
|
||||
assert!(map.insert(Owned("foo".to_string()), 46).is_some());
|
||||
assert!(map.insert("foo".into_cow(), 43).is_some());
|
||||
assert!(map.insert("foo".to_string().into_cow(), 44).is_some());
|
||||
assert!(map.insert("foo".into_cow(), 45).is_some());
|
||||
assert!(map.insert("foo".to_string().into_cow(), 46).is_some());
|
||||
|
||||
let v = 46;
|
||||
|
||||
assert_eq!(map.get(&Owned("foo".to_string())), Some(&v));
|
||||
assert_eq!(map.get(&Slice("foo")), Some(&v));
|
||||
assert_eq!(map.get(&"foo".to_string().into_cow()), Some(&v));
|
||||
assert_eq!(map.get(&"foo".into_cow()), Some(&v));
|
||||
|
||||
let (a, b, c, d) = (50, 51, 52, 53);
|
||||
|
||||
assert!(map.insert(Slice("abc"), a).is_none());
|
||||
assert!(map.insert(Owned("bcd".to_string()), b).is_none());
|
||||
assert!(map.insert(Slice("cde"), c).is_none());
|
||||
assert!(map.insert(Owned("def".to_string()), d).is_none());
|
||||
assert!(map.insert("abc".into_cow(), a).is_none());
|
||||
assert!(map.insert("bcd".to_string().into_cow(), b).is_none());
|
||||
assert!(map.insert("cde".into_cow(), c).is_none());
|
||||
assert!(map.insert("def".to_string().into_cow(), d).is_none());
|
||||
|
||||
assert!(map.insert(Slice("abc"), a).is_some());
|
||||
assert!(map.insert(Owned("bcd".to_string()), b).is_some());
|
||||
assert!(map.insert(Slice("cde"), c).is_some());
|
||||
assert!(map.insert(Owned("def".to_string()), d).is_some());
|
||||
assert!(map.insert("abc".into_cow(), a).is_some());
|
||||
assert!(map.insert("bcd".to_string().into_cow(), b).is_some());
|
||||
assert!(map.insert("cde".into_cow(), c).is_some());
|
||||
assert!(map.insert("def".to_string().into_cow(), d).is_some());
|
||||
|
||||
assert!(map.insert(Owned("abc".to_string()), a).is_some());
|
||||
assert!(map.insert(Slice("bcd"), b).is_some());
|
||||
assert!(map.insert(Owned("cde".to_string()), c).is_some());
|
||||
assert!(map.insert(Slice("def"), d).is_some());
|
||||
assert!(map.insert("abc".to_string().into_cow(), a).is_some());
|
||||
assert!(map.insert("bcd".into_cow(), b).is_some());
|
||||
assert!(map.insert("cde".to_string().into_cow(), c).is_some());
|
||||
assert!(map.insert("def".into_cow(), d).is_some());
|
||||
|
||||
assert_eq!(map.get(&Slice("abc")), Some(&a));
|
||||
assert_eq!(map.get(&Slice("bcd")), Some(&b));
|
||||
assert_eq!(map.get(&Slice("cde")), Some(&c));
|
||||
assert_eq!(map.get(&Slice("def")), Some(&d));
|
||||
assert_eq!(map.get(&"abc".into_cow()), Some(&a));
|
||||
assert_eq!(map.get(&"bcd".into_cow()), Some(&b));
|
||||
assert_eq!(map.get(&"cde".into_cow()), Some(&c));
|
||||
assert_eq!(map.get(&"def".into_cow()), Some(&d));
|
||||
|
||||
assert_eq!(map.get(&Owned("abc".to_string())), Some(&a));
|
||||
assert_eq!(map.get(&Owned("bcd".to_string())), Some(&b));
|
||||
assert_eq!(map.get(&Owned("cde".to_string())), Some(&c));
|
||||
assert_eq!(map.get(&Owned("def".to_string())), Some(&d));
|
||||
assert_eq!(map.get(&"abc".to_string().into_cow()), Some(&a));
|
||||
assert_eq!(map.get(&"bcd".to_string().into_cow()), Some(&b));
|
||||
assert_eq!(map.get(&"cde".to_string().into_cow()), Some(&c));
|
||||
assert_eq!(map.get(&"def".to_string().into_cow()), Some(&d));
|
||||
|
||||
assert!(map.remove(&Slice("foo")).is_some());
|
||||
assert!(map.remove(&"foo".into_cow()).is_some());
|
||||
assert_eq!(map.into_iter().map(|(k, v)| format!("{}{}", k, v))
|
||||
.collect::<Vec<String>>()
|
||||
.concat(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue