color_output/output_builder/impl.rs
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
use crate::{output, ColorType, Output, OutputBuilder};
impl<'a> OutputBuilder<'a> {
/// Creates the struct
///
/// # Returns
/// - `OutputBuilder`: Output
pub fn new() -> Self {
Self {
output: Output::default(),
}
}
/// Creates the struct from output
///
/// # Returns
/// - `OutputBuilder`: Output
pub fn new_from(output: Output<'a>) -> Self {
Self { output }
}
/// Sets the text.
///
/// # Parameters
/// - `text`: The text to be set.
///
/// # Returns
/// - `&mut Self`: A mutable reference to the struct for method chaining.
pub fn text(&mut self, text: &'a str) -> &mut Self {
self.output.text = text;
self
}
/// Sets the text color.
///
/// # Parameters
/// - `color`: The color to be set for the text.
///
/// # Returns
/// - `&mut Self`: A mutable reference to the struct for method chaining.
pub fn color(&mut self, color: ColorType) -> &mut Self {
self.output.color = color;
self
}
/// Sets the background color for the text.
///
/// # Parameters
/// - `bg_color`: The background color to be set for the text.
///
/// # Returns
/// - `&mut Self`: A mutable reference to the struct for method chaining.
pub fn bg_color(&mut self, bg_color: ColorType) -> &mut Self {
self.output.bg_color = bg_color;
self
}
/// Sets whether the text should be bold.
///
/// # Parameters
/// - `blod`: A boolean indicating whether the text should be bold.
///
/// # Returns
/// - `&mut Self`: A mutable reference to the struct for method chaining.
pub fn blod(&mut self, blod: bool) -> &mut Self {
self.output.blod = blod;
self
}
/// Sets the `endl` value for the `Output`.
///
/// # Parameters
/// - `endl`: A boolean value that determines whether to add a newline at the end.
///
/// # Returns
/// - `&mut Self`: Returns a mutable reference to the current `Output` instance, allowing method chaining.
pub fn endl(&mut self, endl: bool) -> &mut Self {
self.output.endl = endl;
self
}
/// Builds and returns the Output struct.
///
/// # Returns
/// - `Output`: The constructed Output struct.
pub fn build(&self) -> Output {
self.output.clone()
}
/// Outputs the current state of the Output struct.
///
/// # Returns
/// - `()` : Nothing is returned.
pub fn output(&self) {
output(self.output.clone());
}
}