about summary refs log tree commit diff
path: root/src/libstd/option.rs
AgeCommit message (Collapse)AuthorLines
2013-08-14Methodyfied the string ascii extionsion functionsMarvin Löbel-2/+9
Added into_owned() method for vectors Added DoubleEnded Iterator impl to Option Renamed nil.rs to unit.rs
2013-08-12auto merge of #8400 : blake2-ppc/rust/seq-ord, r=cmrbors-15/+18
Use Eq + Ord for lexicographical ordering of sequences. For each of <, <=, >= or > as R, use:: [x, ..xs] R [y, ..ys] = if x != y { x R y } else { xs R ys } Previous code using `a < b` and then `!(b < a)` for short-circuiting fails on cases such as [1.0, 2.0] < [0.0/0.0, 3.0], where the first element was effectively considered equal. Containers like &[T] did also implement only one comparison operator `<`, and derived the comparison results from this. This isn't correct either for Ord. Implement functions in `std::iterator::order::{lt,le,gt,ge,equal,cmp}` that all iterable containers can use for lexical order. We also visit tuple ordering, having the same problem and same solution (but differing implementation).
2013-08-10Mass rename of .consume{,_iter}() to .move_iter()Erick Tryzelaar-1/+1
cc #7887
2013-08-08std: Fix Ord for Option, using iterator::orderblake2-ppc-15/+18
2013-08-07std: removed option.take_map{,_default}Erick Tryzelaar-14/+0
2013-08-07core: option.map_consume -> option.map_moveErick Tryzelaar-14/+14
2013-08-06std: Use method name Option::consumeblake2-ppc-3/+5
With Option as the simplest container, `consume` is the way to turn it into a by-value iterator.
2013-08-06std: Add .consume_iter() for Option, to make it reusableblake2-ppc-27/+15
Let Option be a base for a widely useful one- or zero- item iterator. Refactor OptionIterator to support any generic element type, so the same iterator impl can be used for both &T, &mut T and T iterators.
2013-08-05Updated std::Option, std::Either and std::ResultMarvin Löbel-108/+104
- Made naming schemes consistent between Option, Result and Either - Changed Options Add implementation to work like the maybe monad (return None if any of the inputs is None) - Removed duplicate Option::get and renamed all related functions to use the term `unwrap` instead
2013-08-03remove obsolete `foreach` keywordDaniel Micay-1/+1
this has been replaced by `for`
2013-08-03option: mutate() and mutate_default() should return boolKevin Ballard-5/+24
Fixes #8047.
2013-08-01migrate many `for` loops to `foreach`Daniel Micay-3/+1
2013-07-27std: Put the option tests into a tests submoduleErick Tryzelaar-105/+111
2013-07-27std: fix the casing of option::{Some,None} in the docsErick Tryzelaar-6/+6
2013-07-24auto merge of #7931 : blake2-ppc/rust/chain-mut-ref, r=pcwaltonbors-12/+23
First, clean up the uses of "None" and "Some" to always use consistent title case matching the variant names. Add .chain_mut_ref() which is a missing method. A use case example for this method is extraction of an optional value from an Option\<Container\> value.
2013-07-23std: rename str.as_buf to as_imm_buf, add str.as_mut_bufErick Tryzelaar-2/+2
2013-07-23std: move str::as_buf into StrSliceErick Tryzelaar-3/+2
2013-07-20option: Add .chain_mut_ref()blake2-ppc-0/+11
.chain_mut_ref() is the mutable alternative to .chain_ref(). A use case example for this method is extraction of an optional value from an Option<Container> value.
2013-07-20option: Title-case `Some` and `None` in docs and fail messagesblake2-ppc-12/+12
For accuracy, say 'get_ref None' instead of 'get_ref none', and so on.
2013-07-20(cleanup) impl TaskSetBen Blum-0/+7
2013-07-20Add option::take(), the building block of the option::take_* family.Ben Blum-3/+9
2013-07-20Add Option::take_map{,_default}()Ben Blum-0/+14
2013-07-17librustc: Remove all uses of "copy".Patrick Walton-7/+5
2013-07-16Rename Option swap_unwrap to take_unwrap. Fixes Issue#7764Austin King-7/+7
2013-07-09std: Implement `Iterator::size_hint` method for `Option` iteratorsAndrew Paseltiner-0/+50
2013-06-29Implement `map_mut` on the Option typeAlex Crichton-2/+8
Closes #7394
2013-06-29Removing a lot of usage of '&const'Alex Crichton-2/+2
2013-06-27util: make NonCopyable 0 size (instead of 1 byte)Daniel Micay-1/+1
this also adds a derived Eq, TotalEq, Ord and TotalOrd along with removing the useless constructor
2013-06-25Change finalize -> drop.Luqman Aden-1/+1
2013-06-23auto merge of #7279 : hanny24/rust/master, r=msullivanbors-0/+17
This commit adds filtered method for Option type. It is not exactly necessary (chain method can be used instead), however I believe that this approach using extra filtered method is more convinient.
2013-06-21Added filtered method for Option typeHonza Strnad-0/+17
2013-06-18replace #[inline(always)] with #[inline]. r=burningtree.Graydon Hoare-18/+18
2013-06-16Add copies to type params with Copy boundNiko Matsakis-6/+6
2013-06-14Add Zero impls for lots of common typesAlex Crichton-0/+5
2013-06-11option: remove redundant old_iter implsDaniel Micay-48/+6
2013-06-11add Iterator implementations for OptionDaniel Micay-0/+38
2013-06-04std::util: Modernize NonCopyable constructorPhilipp Brüschweiler-1/+1
part of #3853
2013-06-01Remove all uses of `pub impl`. rs=stylePatrick Walton-26/+32
2013-05-30Remove copy bindings from patterns.Niko Matsakis-3/+3
2013-05-24use deriving for DeepCloneDaniel Micay-10/+1
2013-05-22libstd: Rename libcore to libstd and libstd to libextra; update makefiles.Patrick Walton-0/+468
This only changes the directory names; it does not change the "real" metadata names.
2011-12-14Remove some duplicated unused parts of std now that they're present in core.Graydon Hoare-93/+0
2011-12-09Swap arg order for option::{may,maybe}Erick Tryzelaar-2/+2
This lets us write the block syntax sugar: option::may(x) { |y| … }
2011-12-06Establish 'core' library separate from 'std'.Graydon Hoare-0/+93