about summary refs log tree commit diff
path: root/src/libstd/option.rs
AgeCommit message (Collapse)AuthorLines
2013-12-14Remove {As,Into,To}{Option,Either,Result} traits.Chris Morgan-122/+0
Expanded, that is: - `AsOption` - `IntoOption` - `ToOption` - `AsEither` - `IntoEither` - `ToEither` - `AsResult` - `IntoResult` - `ToResult` These were defined for each other but never *used* anywhere. They are all trivial and so removal will have negligible effect upon anyone. `Either` has fallen out of favour (and its implementation of these traits of dubious semantics), `Option<T>` → `Result<T, ()>` was never really useful and `Result<T, E>` → `Option<T>` should now be done with `Result.ok()` (mirrored with `Result.err()` for even more usefulness). In summary, there's really no point in any of these remaining.
2013-11-26test: Remove non-procedure uses of `do` from compiletest, libstd tests,Patrick Walton-2/+2
compile-fail tests, run-fail tests, and run-pass tests.
2013-11-19libstd: Change all uses of `&fn(A)->B` over to `|A|->B` in libstdPatrick Walton-9/+9
2013-11-01Fixed unused import warning in testsMarvin Löbel-1/+1
2013-11-01Removed legacy implementationsMarvin Löbel-61/+0
2013-11-01Cleaned up the option and result module in more detailMarvin Löbel-36/+30
Made both types implement more standard traits in a nicer way Derived more traits
2013-11-01Reordered the methods in std::Option and std::ResultMarvin Löbel-167/+216
Cleaned up the source in a few places Renamed `map_move` to `map`, removed other `map` methods Added `as_ref` and `as_mut` adapters to `Result` Added `fmt::Default` impl
2013-10-22Drop the '2' suffix from logging macrosAlex Crichton-6/+6
Who doesn't like a massive renaming?
2013-10-09option: rewrite the API to use compositionDaniel Micay-59/+24
2013-10-02Check enums in missing_doc lintSteven Fackler-0/+1
Closes #9671
2013-09-30std: Remove usage of fmt!Alex Crichton-16/+18
2013-09-25rustdoc: Change all code-blocks with a scriptAlex Crichton-2/+2
find src -name '*.rs' | xargs sed -i '' 's/~~~.*{\.rust}/```rust/g' find src -name '*.rs' | xargs sed -i '' 's/ ~~~$/ ```/g' find src -name '*.rs' | xargs sed -i '' 's/^~~~$/ ```/g'
2013-09-21Fix example in std::OptionGrigoriy-1/+1
2013-09-17std: Remove Option.or_{default,zero}Erick Tryzelaar-19/+1
These can be replaced with `Some(option.or_default())`.
2013-09-16switch Drop to `&mut self`Daniel Micay-1/+1
2013-09-12std: Restore Option::chain{,_mut}_ref as and_then{,_mut}_refErick Tryzelaar-4/+24
2013-09-12std: Remove Zero impl for OptionErick Tryzelaar-5/+0
Options are not numeric types, so it doesn't make sense for them to implement Zero.
2013-09-12std: Add a bunch of Default implsErick Tryzelaar-0/+1
2013-09-12std: Rename {Option,Result}::chain{,_err}* to {and_then,or_else}Erick Tryzelaar-36/+6
2013-09-12std: Add ToEither/IntoEither/AsEitherErick Tryzelaar-0/+42
2013-09-12std: Add ToResult/IntoResult/AsResultErick Tryzelaar-0/+41
2013-09-12std: Add ToOption/IntoOption/AsOptionErick Tryzelaar-0/+65
2013-09-12std: Add Option.{and,and_then,or,or_else}Erick Tryzelaar-8/+81
2013-09-12std: Add Option.unwrap_or_else and a couple testsErick Tryzelaar-0/+47
2013-09-12std: Add Option.{result_or_default,or_default} that uses DefaultErick Tryzelaar-0/+20
2013-09-12std: add default implementations to OptionErick Tryzelaar-0/+5
2013-09-12std: rename Option::unwrap_or_default() to unwrap_or()Erick Tryzelaar-1/+1
2013-09-09rename `std::iterator` to `std::iter`Daniel Micay-6/+6
The trait will keep the `Iterator` naming, but a more concise module name makes using the free functions less verbose. The module will define iterables in addition to iterators, as it deals with iteration in general.
2013-09-01std/extra: Add ExactSize for Bitv, DList, RingBuf, Option iteratorsblake2-ppc-1/+3
2013-08-27option: rm implementation of AddDaniel Micay-13/+0
Closes #6002 There is consensus that the current implementation should be changed or removed, so removing it seems like the right decision for now.
2013-08-22Enabled unit tests in std and extra.Vadim Chugunov-1/+1
2013-08-20option: derive Clone/DeepClone for the iteratorDaniel Micay-0/+1
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.