Struct welder::Welder
[−]
[src]
pub struct Welder<G, T> { /* fields omitted */ }
An helper struct to accumalate elements.
Methods
impl<G, T: Default> Welder<G, T>
[src]
fn new(glue: G) -> Self
[src]
Create an empty Welder
just by defining the glue used.
Examples
use welder::Welder; let welder = Welder::new(' '); let string: String = welder.weld(); assert_eq!("", &string);
fn with_start<E>(glue: G, start: E) -> Self where
T: Extend<E>,
[src]
T: Extend<E>,
Create a Welder
with a first value and the glue it will use.
Examples
use welder::Welder; let welder = Welder::with_start(' ', "foo"); let string: String = welder.weld(); assert_eq!("foo", &string);
impl<G, T> Welder<G, T>
[src]
fn weld(self) -> T
[src]
Retrieve the accumulated values from the Welder
.
Examples
use welder::Welder; let welder = Welder::with_start(' ', "foo"); let welder = welder.elem("bar").elem("baz").elem("foo"); let string: String = welder.weld(); assert_eq!("foo bar baz foo", &string);
fn elem_no_glue<E>(self, elem: E) -> Self where
T: Extend<E>,
[src]
T: Extend<E>,
This function will add the element without any glue.
Examples
use welder::Welder; let welder = Welder::with_start(' ', "foo"); let welder = welder.elem_no_glue("bar"); let welder = welder.elem_no_glue("baz"); let string: String = welder.weld(); assert_eq!("foobarbaz", &string);
fn elems_no_glue<I>(self, elems: I) -> Self where
I: IntoIterator,
T: Extend<I::Item>,
[src]
I: IntoIterator,
T: Extend<I::Item>,
This function will add each element without any glue.
Examples
use welder::Welder; let welder = Welder::with_start(' ', "foo"); let welder = welder.elems_no_glue(vec!["bar", "baz"]); let string: String = welder.weld(); assert_eq!("foobarbaz", &string);
impl<G, T> Welder<G, T> where
G: Clone,
T: Extend<G>,
[src]
G: Clone,
T: Extend<G>,
fn elem<E>(self, elem: E) -> Self where
T: Extend<E>,
[src]
T: Extend<E>,
Push a new value to the already accumulated values. This function will add a glue element in front of the element.
Examples
use welder::Welder; let welder = Welder::new(' '); let welder = welder.elem("foo"); let welder = welder.elem("bar"); let welder = welder.elem("baz"); let string: String = welder.weld(); assert_eq!(" foo bar baz", &string);
fn elems<I>(self, elems: I) -> Self where
I: IntoIterator,
T: Extend<I::Item>,
[src]
I: IntoIterator,
T: Extend<I::Item>,
Push all elements to the already accumulated values. This function will add a glue in front of each element.
Examples
use welder::Welder; let welder = Welder::new(' '); let welder = welder.elems(vec!["foo", "bar", "baz"]); let string: String = welder.weld(); assert_eq!(" foo bar baz", &string);
fn elem_glue_right<E>(self, elem: E) -> Self where
T: Extend<E>,
[src]
T: Extend<E>,
It will add a glue only to right of the element.
Examples
use welder::Welder; let welder = Welder::with_start(' ', "foo"); let welder = welder.elem_glue_right("bar"); let welder = welder.elem_glue_right("baz"); let string: String = welder.weld(); assert_eq!("foobar baz ", &string);
fn elems_glue_right<I>(self, elems: I) -> Self where
I: IntoIterator,
T: Extend<I::Item>,
[src]
I: IntoIterator,
T: Extend<I::Item>,
This function will add a glue to the right of each element.
Examples
use welder::Welder; let welder = Welder::with_start(' ', "foo"); let welder = welder.elems_glue_right(vec!["bar", "baz"]); let string: String = welder.weld(); assert_eq!("foobar baz ", &string);
fn elem_glue_left<E>(self, elem: E) -> Self where
T: Extend<E>,
[src]
T: Extend<E>,
This is the default elem function. It will add a glue only to the left of the element.
Examples
use welder::Welder; let welder = Welder::new(' '); let welder = welder.elem_glue_left("foo"); let string: String = welder.weld(); assert_eq!(" foo", &string);
fn elems_glue_left<I>(self, elems: I) -> Self where
I: IntoIterator,
T: Extend<I::Item>,
[src]
I: IntoIterator,
T: Extend<I::Item>,
Push elements to the already accumulated values. This function will add a glue in front of each element.
Examples
use welder::Welder; let welder = Welder::new(' '); let welder = welder.elems(vec!["foo", "bar", "baz"]); let string: String = welder.weld(); assert_eq!(" foo bar baz", &string);
fn elem_glue_both<E>(self, elem: E) -> Self where
T: Extend<E>,
[src]
T: Extend<E>,
This function will add a glue on both sides of the element.
Examples
use welder::Welder; let welder = Welder::new(' '); let welder = welder.elem_glue_both("foo"); let welder = welder.elem_glue_both("bar"); let string: String = welder.weld(); assert_eq!(" foo bar ", &string);
fn elems_glue_both<I>(self, elems: I) -> Self where
I: IntoIterator,
T: Extend<I::Item>,
[src]
I: IntoIterator,
T: Extend<I::Item>,
This function will add a glue on both sides of each element.
Examples
use welder::Welder; let welder = Welder::new(' '); let welder = welder.elems_glue_both(vec!["foo", "bar"]); let string: String = welder.weld(); assert_eq!(" foo bar ", &string);