From b19fdcced22d36bd50974e1da3062439e8a656b2 Mon Sep 17 00:00:00 2001 From: Lenny222 Date: Tue, 17 Jan 2012 19:43:29 +0100 Subject: libstd => libcore --- src/libcore/core.rc | 2 ++ src/libcore/tuple.rs | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/libcore/tuple.rs (limited to 'src/libcore') diff --git a/src/libcore/core.rc b/src/libcore/core.rc index d97992da618..9fdba5c469b 100644 --- a/src/libcore/core.rc +++ b/src/libcore/core.rc @@ -13,6 +13,7 @@ export either, option, result; export ctypes, sys, unsafe, comm, task, logging; export extfmt; export math; +export tuple; // Built-in-type support modules @@ -41,6 +42,7 @@ mod unicode; mod either; mod option; mod result; +mod tuple; // Runtime and language-primitive support diff --git a/src/libcore/tuple.rs b/src/libcore/tuple.rs new file mode 100644 index 00000000000..9d24f428d42 --- /dev/null +++ b/src/libcore/tuple.rs @@ -0,0 +1,28 @@ +/* +Module: tuple +*/ + +// FIXME #1546: Would rather write fst(+pair: (T, U)) -> T +fn first(pair: (T, U)) -> T { + let (t, _) = pair; + ret t; +} + +fn second(pair: (T, U)) -> U { + let (_, u) = pair; + ret u; +} + +fn swap(pair: (T, U)) -> (U, T) { + let (t, u) = pair; + ret (u, t); +} + + +#[test] +fn test_tuple() { + assert first((948, 4039.48)) == 948; + assert second((34.5, "foo")) == "foo"; + assert swap(('a', 2)) == (2, 'a'); +} + -- cgit 1.4.1-3-g733a5