1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
// Copyright (c) 2015-2016 Chris Palmer <pennstate5013@gmail.com>
// Use of this source code is governed by the LGPLv3 license that can be
// found in the LICENSE file.
//! The fields can be set for text input by using the methods
//! under `TextInputBuilder`.
use channels::{TextInput, TextInputBuilder};
use utils::string_utils;
impl TextInputBuilder {
/// Construct a new `TextInputBuilder` and return default values.
///
/// # Examples
///
/// ```
/// use feed::channels::TextInputBuilder;
///
/// let text_input_builder = TextInputBuilder::new();
/// ```
pub fn new() -> TextInputBuilder {
TextInputBuilder::default()
}
/// Set the title that exists under `TextInput`.
///
/// # Examples
///
/// ```
/// use feed::channels::TextInputBuilder;
///
/// let mut text_input_builder = TextInputBuilder::new();
/// text_input_builder.title("Title");
/// ```
pub fn title(&mut self, title: &str) -> &mut TextInputBuilder {
self.title = title.to_owned();
self
}
/// Set the description that exists under `TextInput`.
///
/// # Examples
///
/// ```
/// use feed::channels::TextInputBuilder;
///
/// let mut text_input_builder = TextInputBuilder::new();
/// text_input_builder.description("This is a test description.");
/// ```
pub fn description(&mut self, description: &str) -> &mut TextInputBuilder {
self.description = description.to_owned();
self
}
/// Set the name that exists under `TextInput`.
///
/// # Examples
///
/// ```
/// use feed::channels::TextInputBuilder;
///
/// let mut text_input_builder = TextInputBuilder::new();
/// text_input_builder.name("Comments");
/// ```
pub fn name(&mut self, name: &str) -> &mut TextInputBuilder {
self.name = name.to_owned();
self
}
/// Set the link that exists under `TextInput`.
///
/// # Examples
///
/// ```
/// use feed::channels::TextInputBuilder;
///
/// let mut text_input_builder = TextInputBuilder::new();
/// text_input_builder.link("http://www.example.com/feedback");
/// ```
pub fn link(&mut self, link: &str) -> &mut TextInputBuilder {
self.link = link.to_owned();
self
}
/// Construct the `TextInput` from the `TextInputBuilder`.
///
/// # Examples
///
/// ```
/// use feed::channels::TextInputBuilder;
///
/// let text_input = TextInputBuilder::new()
/// .title("Title")
/// .description("This is a test description.")
/// .name("Comments")
/// .link("http://www.example.com/feedback")
/// .finalize();
/// ```
pub fn finalize(&self) -> TextInput {
let link_string = self.link.clone();
let link = string_utils::str_to_url(link_string.as_str(), "TextInput Link");
TextInput {
title: self.title.clone(),
description: self.description.clone(),
name: self.name.clone(),
link: link,
}
}
}