1
0
mirror of https://github.com/sharkdp/bat synced 2026-08-02 18:41:42 +00:00

Improve readability

Using `Path`s for paths expresses intent more clearly.
This commit is contained in:
Aleksey Kladov
2021-03-02 11:15:49 +03:00
committed by David Peter
parent b489fc75c9
commit 35347c2310
8 changed files with 42 additions and 33 deletions
+10 -7
View File
@@ -1,6 +1,6 @@
use std::collections::HashSet;
use std::env;
use std::ffi::OsStr;
use std::path::Path;
use std::str::FromStr;
use atty::{self, Stream};
@@ -248,16 +248,19 @@ impl App {
}
_ => {}
}
let filenames: Option<Vec<&str>> = self
let filenames: Option<Vec<&Path>> = self
.matches
.values_of("file-name")
.map(|values| values.collect());
.values_of_os("file-name")
.map(|values| values.map(Path::new).collect());
let mut filenames_or_none: Box<dyn Iterator<Item = _>> = match filenames {
Some(ref filenames) => Box::new(filenames.iter().map(|name| Some(OsStr::new(*name)))),
let mut filenames_or_none: Box<dyn Iterator<Item = Option<&Path>>> = match filenames {
Some(filenames) => Box::new(filenames.into_iter().map(Some)),
None => Box::new(std::iter::repeat(None)),
};
let files: Option<Vec<&OsStr>> = self.matches.values_of_os("FILE").map(|vs| vs.collect());
let files: Option<Vec<&Path>> = self
.matches
.values_of_os("FILE")
.map(|vs| vs.map(Path::new).collect());
if files.is_none() {
return Ok(vec![new_stdin_input(
+4 -4
View File
@@ -1,15 +1,15 @@
use bat::input::Input;
use std::ffi::OsStr;
use std::path::Path;
pub fn new_file_input<'a>(file: &'a OsStr, name: Option<&'a OsStr>) -> Input<'a> {
pub fn new_file_input<'a>(file: &'a Path, name: Option<&'a Path>) -> Input<'a> {
named(Input::ordinary_file(file), name.or(Some(file)))
}
pub fn new_stdin_input(name: Option<&OsStr>) -> Input {
pub fn new_stdin_input(name: Option<&Path>) -> Input {
named(Input::stdin(), name)
}
fn named<'a>(input: Input<'a>, name: Option<&OsStr>) -> Input<'a> {
fn named<'a>(input: Input<'a>, name: Option<&Path>) -> Input<'a> {
if let Some(provided_name) = name {
let mut input = input.with_name(Some(provided_name));
input.description_mut().set_kind(Some("File".to_owned()));
+1 -2
View File
@@ -9,7 +9,6 @@ mod directories;
mod input;
use std::collections::{HashMap, HashSet};
use std::ffi::OsStr;
use std::io;
use std::io::{BufReader, Write};
use std::path::Path;
@@ -269,7 +268,7 @@ fn run() -> Result<bool> {
run_cache_subcommand(cache_matches)?;
Ok(true)
} else {
let inputs = vec![Input::ordinary_file(OsStr::new("cache"))];
let inputs = vec![Input::ordinary_file("cache")];
let config = app.config(&inputs)?;
run_controller(inputs, &config)