2015-03-10 23:58:16 -05:00
|
|
|
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
|
|
|
|
// file at the top-level directory of this distribution and at
|
|
|
|
// http://rust-lang.org/COPYRIGHT.
|
|
|
|
//
|
|
|
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
|
|
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
|
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
|
|
|
// option. This file may not be copied, modified, or distributed
|
|
|
|
// except according to those terms.
|
|
|
|
|
2015-06-15 12:24:52 -05:00
|
|
|
#![feature(ascii)]
|
2015-06-10 15:33:52 -05:00
|
|
|
#![feature(append)]
|
2015-03-10 23:58:16 -05:00
|
|
|
#![feature(box_syntax)]
|
2015-06-10 15:33:52 -05:00
|
|
|
#![feature(btree_range)]
|
2015-03-10 23:58:16 -05:00
|
|
|
#![feature(collections)]
|
2015-06-10 15:33:52 -05:00
|
|
|
#![feature(collections_bound)]
|
2015-05-29 08:42:32 -05:00
|
|
|
#![feature(const_fn)]
|
2015-06-10 15:33:52 -05:00
|
|
|
#![feature(core)]
|
|
|
|
#![feature(deque_extras)]
|
|
|
|
#![feature(drain)]
|
|
|
|
#![feature(enumset)]
|
|
|
|
#![feature(into_cow)]
|
|
|
|
#![feature(iter_arith)]
|
|
|
|
#![feature(pattern)]
|
2015-03-10 23:58:16 -05:00
|
|
|
#![feature(rand)]
|
2015-06-10 15:33:52 -05:00
|
|
|
#![feature(range_inclusive)]
|
2015-03-10 23:58:16 -05:00
|
|
|
#![feature(rustc_private)]
|
2015-08-27 10:10:28 -05:00
|
|
|
#![feature(set_recovery)]
|
2015-06-10 15:33:52 -05:00
|
|
|
#![feature(slice_bytes)]
|
2015-07-11 06:34:57 -05:00
|
|
|
#![feature(slice_splits)]
|
2015-06-10 15:33:52 -05:00
|
|
|
#![feature(split_off)]
|
|
|
|
#![feature(step_by)]
|
|
|
|
#![feature(str_char)]
|
|
|
|
#![feature(str_escape)]
|
2015-06-10 21:33:04 -05:00
|
|
|
#![feature(str_match_indices)]
|
2015-07-13 11:59:06 -05:00
|
|
|
#![feature(str_split_at)]
|
2015-06-10 15:33:52 -05:00
|
|
|
#![feature(str_utf16)]
|
2015-07-10 02:04:06 -05:00
|
|
|
#![feature(box_str)]
|
2015-03-10 23:58:16 -05:00
|
|
|
#![feature(test)]
|
|
|
|
#![feature(unboxed_closures)]
|
|
|
|
#![feature(unicode)]
|
2015-06-10 15:33:52 -05:00
|
|
|
#![feature(vec_deque_retain)]
|
|
|
|
#![feature(vec_push_all)]
|
2015-07-11 06:34:57 -05:00
|
|
|
|
2015-03-10 23:58:16 -05:00
|
|
|
#[macro_use] extern crate log;
|
|
|
|
|
|
|
|
extern crate collections;
|
|
|
|
extern crate test;
|
deprecate Unicode functions that will be moved to crates.io
This patch
1. renames libunicode to librustc_unicode,
2. deprecates several pieces of libunicode (see below), and
3. removes references to deprecated functions from
librustc_driver and libsyntax. This may change pretty-printed
output from these modules in cases involving wide or combining
characters used in filenames, identifiers, etc.
The following functions are marked deprecated:
1. char.width() and str.width():
--> use unicode-width crate
2. str.graphemes() and str.grapheme_indices():
--> use unicode-segmentation crate
3. str.nfd_chars(), str.nfkd_chars(), str.nfc_chars(), str.nfkc_chars(),
char.compose(), char.decompose_canonical(), char.decompose_compatible(),
char.canonical_combining_class():
--> use unicode-normalization crate
2015-04-14 14:52:37 -05:00
|
|
|
extern crate rustc_unicode;
|
2015-03-10 23:58:16 -05:00
|
|
|
|
2015-08-11 19:27:05 -05:00
|
|
|
use std::hash::{Hash, Hasher, SipHasher};
|
|
|
|
|
2015-03-10 23:58:16 -05:00
|
|
|
#[cfg(test)] #[macro_use] mod bench;
|
|
|
|
|
|
|
|
mod binary_heap;
|
|
|
|
mod btree;
|
2015-03-11 19:28:58 -05:00
|
|
|
mod enum_set;
|
2015-03-10 23:58:16 -05:00
|
|
|
mod fmt;
|
|
|
|
mod linked_list;
|
|
|
|
mod slice;
|
|
|
|
mod str;
|
|
|
|
mod string;
|
|
|
|
mod vec_deque;
|
|
|
|
mod vec;
|
2015-08-11 19:27:05 -05:00
|
|
|
|
|
|
|
fn hash<T: Hash>(t: &T) -> u64 {
|
|
|
|
let mut s = SipHasher::new();
|
|
|
|
t.hash(&mut s);
|
|
|
|
s.finish()
|
|
|
|
}
|