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
119
120
121
122
123
124
125
126
127
128
129
130
131
//! # Cfonts - Sexy fonts for the console
//!
//! ```sh
//! $ cfonts "hi there"
//!
//! ██╗ ██╗ ██╗ ████████╗ ██╗ ██╗ ███████╗ ██████╗ ███████╗
//! ██║ ██║ ██║ ╚══██╔══╝ ██║ ██║ ██╔════╝ ██╔══██╗ ██╔════╝
//! ███████║ ██║ ██║ ███████║ █████╗ ██████╔╝ █████╗
//! ██╔══██║ ██║ ██║ ██╔══██║ ██╔══╝ ██╔══██╗ ██╔══╝
//! ██║ ██║ ██║ ██║ ██║ ██║ ███████╗ ██║ ██║ ███████╗
//! ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚══════╝
//! ```
//!
//! 💡 This is a silly little command line tool for sexy fonts in the console. **Give your cli some love.**
//!
//! ---
//! This library supports:
//! - different fonts
//! - multiple colors per font
//! - color gradient
//! - text alignment
//! - letter spacing and line height options
//!
//! ## Usage
//!
//! Print directly to your console via the [`println!()`](https://doc.rust-lang.org/std/macro.println.html) macro:
//!
//! ```rust
//! extern crate cfonts;
//!
//! use cfonts::{ say, Options };
//!
//! fn main() {
//! say(Options {
//! text: String::from("hello"),
//! ..Options::default()
//! });
//! }
//! ```
//!
//! Or use the output struct however you like:
//!
//! ```rust
//! extern crate cfonts;
//!
//! use cfonts::{ render, Options, Fonts };
//!
//! fn main() {
//! let output = render(Options {
//! text: String::from("hello"),
//! font: Fonts::FontTiny,
//! ..Options::default()
//! });
//!
//! assert_eq!(
//! output.text,
//! format!("{}{}{}",
//! "\n\n",
//! " █ █ █▀▀ █ █ █▀█\n",
//! " █▀█ ██▄ █▄▄ █▄▄ █▄█\n\n"
//! )
//! );
//!
//! assert_eq!(output.vec, vec![
//! String::from("\n\n █ █ █▀▀ █ █ █▀█"),
//! String::from( " █▀█ ██▄ █▄▄ █▄▄ █▄█\n\n"),
//! ]);
//!
//! assert_eq!(output.lines, 1);
//!
//! assert_eq!(output.options, Options {
//! text: String::from("hello"),
//! font: Fonts::FontTiny,
//! ..Options::default()
//! });
//! }
//! ```
extern crate exitcode;
pub use Rgb;
pub use ;
use ;
pub use render;
/// The `say` function will print your cfonts output to `stdout`.
///
/// The way you pass it Options is the same as for [`render()`]
///
/// ```rust
/// extern crate cfonts;
///
/// use cfonts::{ say, Options, Align, BgColors, Colors, Env, Fonts, Rgb };
///
/// fn main() {
/// say(Options {
/// text: String::from("hello"),
/// font: Fonts::FontSlick,
/// colors: vec![Colors::Red, Colors::Rgb(Rgb::Val(20, 216, 79))],
/// background: BgColors::BlueBright,
/// align: Align::Center,
/// letter_spacing: 1,
/// line_height: 2,
/// spaceless: true,
/// max_length: 15,
/// gradient: vec![String::from("#ff8800"), String::from("#88ff00")],
/// independent_gradient: false,
/// transition_gradient: false,
/// env: Env::Browser,
/// ..Options::default()
/// });
/// }
/// ```