- Start Date: 2014-11-10
- RFC PR: (leave this empty)
- Rust Issue: (leave this empty)
I propose altering the Send
trait as proposed by RFC #17 as
follows:
- Remove the implicit
'static
bound fromSend
.
#![feature(if_let)] | |
extern crate arena; | |
use arena::TypedArena; | |
use std::cell::Cell; | |
use std::fmt; | |
type NodeRef<'a, T> = Cell<Option<&'a Node<'a, T>>>; |
#![feature(rustc_private,std_misc)] | |
extern crate arena; | |
use arena::TypedArena; | |
use std::cell::Cell; | |
use std::collections::hash_map::Entry as h; | |
use std::collections::HashMap; | |
use std::default::Default; | |
use std::fmt; |
#![feature(unsafe_destructor)] | |
use rooted::{RcSend, Root}; | |
use std::fmt; | |
use std::rc::Rc; | |
mod rooted { | |
use std::collections::trie_map::{mod, TrieMap}; | |
use std::fmt; | |
use std::kinds::marker; |
#![feature(if_let)] | |
use nomove::{freeze, freeze_box, FreezeSlice, NoMoveGuard}; | |
use std::cell::Cell; | |
mod nomove { | |
pub struct NoMoveGuard<T> { | |
pub data: T, | |
no_copy: ::std::kinds::marker::NoCopy, | |
} |
use std::collections::{dlist, DList, HashSet, Deque}; | |
use std::hash::Hash; | |
use std::iter; | |
use std::default::Default; | |
pub struct LinkedHashSet<'a, T: 'a> where T: Hash + Eq { | |
// Important: HashSet must come after DList, since destructors run in | |
// reverse order. Otherwise we'd have use after free (potentially). | |
element_list: DList<T>, | |
element_set: HashSet<&'a T>, |
#![feature(macro_rules)] | |
extern crate collections; | |
extern crate sync; | |
use std::sync::{Arc, Mutex, RWLock, RWLockReadGuard}; | |
use std::sync::atomic::{AtomicBool, AtomicPtr, AtomicUint, Ordering, Relaxed, SeqCst}; | |
use std::ptr; | |
use std::ptr::{RawMutPtr}; | |
use std::slice::Items; |
#![feature(unsafe_destructor)] | |
/* | |
For safety, here are some guarantees we need fulfilled for allocated types for | |
an allocator of size class <M, N, O>. | |
* <T>::Size < M | |
e.g. consider 1-sized struct aligned at 4096. |
#![feature(if_let)] | |
extern crate arena; | |
extern crate rustc; | |
use arena::Arena; | |
use rustc::util::nodemap::FnvHashMap; | |
use std::any::{Any, AnyRefExt}; | |
use std::cell::RefCell; | |
use std::collections::hashmap; |
pub mod bitmap { | |
pub type ColorComponent = u8; | |
#[deriving(Clone, Default, Eq, PartialEq)] | |
pub struct Pixel { | |
pub r: ColorComponent, | |
pub g: ColorComponent, | |
pub b: ColorComponent, | |
} |