Crate tuplify

source ·
Expand description

Tuplify

Crate link Documentation License

Utility library that facilitates the use of tuples as generic arguments.

See individual Traits for features implementation and detailled examples.

Examples

Tuples

use tuplify::*;

assert_eq!((1, 2).push_back(3), (1, 2, 3));

assert_eq!((Some(1), Some(2), Some(3)).validate(), Some((1, 2, 3)));

assert_eq!((Some(1), Some(2), None::<i32>).validate(), None);

assert_eq!((1, 2).extend((3, 4)), (1, 2, 3, 4));

assert_eq!((1, 2, 3, 4).pop_back(), (4, (1, 2, 3)));

assert_eq!((1, 2, 3, 4).uncons(), (1, (2, 3, 4)));

Heterogenous list

use tuplify::*;

assert_eq!(hcons![1, 2].push_back(3), hcons![1, 2, 3]);

assert_eq!(hcons![Some(1), Some(2), Some(3)].validate(), Some(hcons![1, 2, 3]));

assert_eq!(hcons![Ok(1), Ok(2), Err::<u32, _>("oh no")].validate(), Err("oh no"));

assert_eq!(hcons![1, 2].extend(hcons![3, 4]), hcons![1, 2, 3, 4]);

assert_eq!(hcons![1, 2, 3, 4].pop_back(), (4, hcons![1, 2, 3]));

assert_eq!(hcons![1, 2, 3, 4].uncons(), (1, hcons![2, 3, 4]));

Contribution

Found a problem or have a suggestion? Feel free to open an issue.

Macros

Structs

Enums

Traits

  • Turns a mutable reference into an heterogeneous list of mutable references.
  • Turns a reference to an heterogenous list into a list of references.
  • Concatenate 2 heterogenous lists, extending self with Other
  • Helper trait to use heterogenous lists as arguments for Fns.
  • Helper trait to use heterogenous lists as arguments for FnMuts.
  • Helper trait to use heterogenous lists as arguments for FnOnces.
  • Heterogenous fixed size (aka: compile time) list.
  • Trait for converting a heterogeneous list into a HCons list.
  • Trait for wrapping each element of an heterogenous list in Some.
  • Utility trait used to convert something into a crate::Tuple.
  • Removes the element at the back of the list
  • Removes the element at the back of the list
  • Adds an element at the end of the list
  • Adds an element at the begining of the list
  • Reversible heterogeneous list.
  • Removes the element at the back of the list
  • Removes the list front element if the list is empty, returns None
  • Try to convert a list of Somes to a list of the inner values.
  • Trait used for the conversion of a list of Oks to a list of the inner values.
  • Identifier for tuple types
  • Removes the list front element
  • Extension trait for types implementing Uncons.
  • Removes the list front element.
  • Unpacks heterogeneous lists containing exactly one element.
  • Convert a list of Options to an option of the inner elements.
  • Convert a list of Results to an option of the inner elements.