rust/src
Jakub Bukaj db4d60afb0 rollup merge of #18911: canndrew/slice_shift_char
`slice_shift_char` splits a `str` into it's leading `char` and the remainder of the `str`. Currently, it returns a `(Option<char>, &str)` such that:

    "bar".slice_shift_char() => (Some('b'), "ar")
    "ar".slice_shift_char()  => (Some('a'), "r")
    "r".slice_shift_char()   => (Some('r'), "")
    "".slice_shift_char()    => (None,      "")

This is a little odd. Either a `str` can be split into both a head and a tail or it cannot. So the return type should be `Option<(char, &str)>`. With the current behaviour, in the case of the empty string, the `str` returned is meaningless - it is always the empty string.

This PR changes `slice_shift_char` so that:

    "bar".slice_shift_char() => Some(('b', "ar"))
    "ar".slice_shift_char()  => Some(('a', "r"))
    "r".slice_shift_char()   => Some(('r', ""))
    "".slice_shift_char()    => None
2014-11-18 00:23:55 +01:00
..
compiler-rt@62a4ca6055
compiletest Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
doc Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
driver Updated to new extern crate syntax. 2014-09-01 09:02:00 -07:00
etc Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
grammar Fallout from deprecation 2014-11-17 11:26:48 -08:00
jemalloc@b001609960 update jemalloc 2014-10-05 22:17:25 -04:00
liballoc libs: fix #[stable] inheritance fallout 2014-11-14 20:39:41 -08:00
libarena Remove lots of numeric traits from the preludes 2014-11-13 03:46:03 +11:00
libbacktrace
libcollections rollup merge of #18911: canndrew/slice_shift_char 2014-11-18 00:23:55 +01:00
libcore rollup merge of #18911: canndrew/slice_shift_char 2014-11-18 00:23:55 +01:00
libcoretest auto merge of #19027 : nick29581/rust/coercions-4, r=alexcrichton 2014-11-17 11:22:00 +00:00
libflate Use the same html_root_url for all docs 2014-10-09 10:50:13 -07:00
libfmt_macros Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
libgetopts Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
libgraphviz Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
libgreen Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
liblibc Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
liblog rollup merge of #18398 : aturon/lint-conventions-2 2014-10-30 17:37:22 -07:00
libnative Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
librand Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
librbml Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
libregex Fallout from deprecation 2014-11-17 11:26:48 -08:00
libregex_macros rollup merge of #18398 : aturon/lint-conventions-2 2014-10-30 17:37:22 -07:00
librustc rollup merge of #18910: aturon/borrow-traits 2014-11-18 00:23:53 +01:00
librustc_back Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
librustc_llvm Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
librustdoc Fallout from deprecation 2014-11-17 11:26:48 -08:00
librustrt Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
libserialize Fallout from deprecation 2014-11-17 11:26:48 -08:00
libstd Remove bogus Duration::span test 2014-11-17 11:26:48 -08:00
libsync Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
libsyntax rollup merge of #18911: canndrew/slice_shift_char 2014-11-18 00:23:55 +01:00
libterm Fallout from deprecation 2014-11-17 11:26:48 -08:00
libtest Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
libtime Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
libunicode Switch to purely namespaced enums 2014-11-17 07:35:51 -08:00
llvm@ec1fdb3b9d Update LLVM to get slightly better memcpy elision 2014-10-17 17:16:18 +02:00
rt remove the uv_support code 2014-10-02 05:05:12 -04:00
rustllvm optimize position independent code in executables 2014-10-12 09:18:14 -04:00
test rollup merge of #18910: aturon/borrow-traits 2014-11-18 00:23:53 +01:00
README.md Remove librustuv 2014-10-01 10:34:39 -07:00
snapshots.txt Register new snapshots 2014-11-12 12:17:55 -08:00

This is a preliminary version of the Rust compiler, libraries and tools.

Source layout:

Path Description
librustc/ The self-hosted compiler
liballoc/ Rust's core allocation library
libcore/ The Rust core library
libdebug/ Debugging utilities
libstd/ The standard library (imported and linked by default)
libgreen/ The M:N runtime library
libnative/ The 1:1 runtime library
libsyntax/ The Rust parser and pretty-printer
libtest/ Rust's test-runner code
------------------- ---------------------------------------------------------
libarena/ The arena (a fast but limited) memory allocator
libbacktrace/ The libbacktrace library
libcollections/ A collection of useful data structures and containers
libflate/ Simple compression library
libfmt_macros/ Macro support for format strings
libfourcc/ Data format identifier library
libgetopts/ Get command-line-options library
libglob/ Unix glob patterns library
libgraphviz/ Generating files for Graphviz
libhexfloat/ Hexadecimal floating-point literals
liblibc/ Bindings for the C standard library
liblog/ Utilities for program-wide and customizable logging
libnum/ Extended number support library (complex, rational, etc)
librand/ Random numbers and distributions
libregex/ Regular expressions
libregex_macros/ The regex! syntax extension
libsemver/ Rust's semantic versioning library
libserialize/ Encode-Decode types library
libsync/ Concurrency mechanisms and primitives
libterm/ ANSI color library for terminals
libtime/ Time operations library
liburl/ URL handling lirary
libuuid/ UUID's handling code
------------------- ---------------------------------------------------------
rt/ The runtime system
rt/rust_*.c - Some of the runtime services
rt/vg - Valgrind headers
rt/msvc - MSVC support
rt/sundown - The Markdown library used by rustdoc
------------------- ---------------------------------------------------------
compiletest/ The test runner
test/ Testsuite
test/codegen - Tests for the LLVM IR infrastructure
test/compile-fail - Tests that should fail to compile
test/debug-info - Tests for the debuginfo tool
test/run-fail - Tests that should compile, run and fail
test/run-make - Tests that depend on a Makefile infrastructure
test/run-pass - Tests that should compile, run and succeed
test/bench - Benchmarks and miscellaneous
test/pretty - Pretty-printer tests
test/auxiliary - Dependencies of tests
------------------- ---------------------------------------------------------
librustdoc/ The Rust API documentation tool
------------------- ---------------------------------------------------------
llvm/ The LLVM submodule
rustllvm/ LLVM support code
------------------- ---------------------------------------------------------
etc/ Scripts, editors support, misc

NOTE: This list (especially the second part of the table which contains modules and libraries) is highly volatile and subject to change.