use std::option::Option::{Some, None};
use std::str::Str;
use std::sync::atomic;
+ use std::sync::atomic::Ordering::{Acquire, SeqCst};
use std::task;
use std::kinds::Send;
use std::vec::Vec;
let (vals_offset, _) = calculate_offsets_generic::<K, V>(capacity, true);
Node {
- keys: Unique(buffer as *mut K).
+ keys: Unique(buffer as *mut K),
vals: Unique(unsafe { buffer.offset(vals_offset as int) as *mut V }),
- edges: Unique(ptr::null_mut::<u8>()),
+ edges: Unique(ptr::null_mut()),
_len: 0,
_capacity: capacity,
}
/// If the node has any children
pub fn is_leaf(&self) -> bool {
- self.edges.is_null()
+ self.edges.0.is_null()
}
/// if the node has too few elements
vals: RawItems::from_slice(self.vals()),
edges: RawItems::from_slice(self.edges()),
- ptr: self.keys as *mut u8,
+ ptr: self.keys.0 as *mut u8,
capacity: self.capacity(),
is_leaf: self.is_leaf()
},
// Iterators
////////////////////////////////////////////////////////////////////////////////
-#[deriving(Copy)]
+#[deriving(Copy, Clone)]
enum Direction { Pos, Neg }
/// An `Index` and `Direction` together.
-#[deriving(Copy)]
+#[deriving(Copy, Clone)]
struct SizeDirection {
size: uint,
dir: Direction,
// except according to those terms.
use core::atomic::*;
+use core::atomic::Ordering::SeqCst;
#[test]
fn bool_() {
mod tests {
extern crate rand;
- use super::{Digest, Sha256, FixedBuffer};
- use self::rand::isaac::IsaacRng;
use self::rand::Rng;
+ use self::rand::isaac::IsaacRng;
use serialize::hex::FromHex;
+ use std::iter::repeat;
use std::num::Int;
+ use super::{Digest, Sha256, FixedBuffer};
// A normal addition - no overflow occurs
#[test]
}
// FIXME(#19839) Remove in favor of `#[deriving(Clone)]`
-impl<'a, K, V> Clone for Entries<'a, K, V> {
- fn clone(&self) -> Entries<'a, K, V> {
- Entries {
+impl<'a, K, V> Clone for Iter<'a, K, V> {
+ fn clone(&self) -> Iter<'a, K, V> {
+ Iter {
inner: self.inner.clone()
}
}
}
// FIXME(#19839) Remove in favor of `#[deriving(Clone)]`
-impl<'a, K, V> Clone for Entries<'a, K, V> {
- fn clone(&self) -> Entries<'a, K, V> {
- Entries {
+impl<'a, K, V> Clone for Iter<'a, K, V> {
+ fn clone(&self) -> Iter<'a, K, V> {
+ Iter {
iter: self.iter.clone(),
elems_left: self.elems_left
}
#[cfg(windows)]
fn real_args() -> Vec<String> {
use slice;
+ use iter::range;
let mut nArgs: c_int = 0;
let lpArgCount: *mut c_int = &mut nArgs;
let mut res = None;
let mut done = false;
while !done {
- let mut buf: Vec<u16> = repeat(0u16).take(n).collect();
+ let mut buf: Vec<u16> = repeat(0u16).take(n as uint).collect();
let k = f(buf.as_mut_ptr(), n);
if k == (0 as DWORD) {
done = true;
fn main() {
let _: &Tr = &St; //~ ERROR cannot convert to a trait object because trait `Tr` is not
- //~^ NOTE cannot call a static method (`foo`) through a trait object
}
// except according to those terms.
use std::time::Duration;
+use std::thread::Thread;
fn main() {
- std::task::spawn(move|| customtask());
+ Thread::spawn(move|| customtask()).join().ok().unwrap();
}
fn customtask() {