Skip to content

Commit b8dfdf1

Browse files
committed
Make print_langs take a writer instead of calling println
1 parent 70ead71 commit b8dfdf1

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/langs.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
use std::sync::LazyLock;
1+
use std::{io::Write, sync::LazyLock};
22

3+
use anyhow::Result;
34
use globset::{GlobBuilder, GlobSet, GlobSetBuilder};
45

56
use crate::utils::pluralize;
@@ -172,18 +173,19 @@ pub fn get_language_info(language_name: &str) -> Option<&'static Language> {
172173
}
173174

174175
/// Print all supported programming languages to stdout.
175-
pub fn print_all_languages() {
176+
pub fn print_all_languages(writer: &mut dyn Write) -> Result<()> {
176177
let lang_count = u64::try_from(LANGUAGES.len()).unwrap_or(u64::MAX);
177-
println!(
178+
writeln!(writer,
178179
"Total number of supported programming {}: {}",
179180
pluralize(lang_count, "language", "languages"),
180181
LANGUAGES.len()
181-
);
182+
)?;
182183
let last_idx = LANGUAGES.len().saturating_sub(1);
183184
for (i, lang) in LANGUAGES.iter().enumerate() {
184185
let suffix = if i == last_idx { "." } else { "," };
185-
println!("{}{suffix}", lang.name);
186+
writeln!(writer, "{}{suffix}", lang.name)?;
186187
}
188+
Ok(())
187189
}
188190

189191
#[cfg(test)]

src/main.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ fn main() -> Result<()> {
1313
let cli = Cli::parse();
1414
match cli.command {
1515
Commands::Langs => {
16-
langs::print_all_languages();
16+
let mut stdout = io::stdout();
17+
langs::print_all_languages(&mut stdout)?;
18+
stdout.flush()?;
1719
Ok(())
1820
}
1921
Commands::Analyze { path, verbose, no_gitignore, hidden, symlinks, output } => {

0 commit comments

Comments
 (0)