Move file type colours to their own struct

This commit is contained in:
Ben S 2015-05-10 00:22:58 +01:00
parent 89dd5c1239
commit 627bca98ef
2 changed files with 37 additions and 30 deletions

View File

@ -8,6 +8,11 @@ use std::default::Default;
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct Colours {
pub filetypes: FileTypes,
}
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct FileTypes {
pub normal: Style,
pub directory: Style,
pub symlink: Style,
@ -32,21 +37,23 @@ impl Colours {
pub fn colourful() -> Colours {
Colours {
normal: Plain,
directory: Blue.bold(),
symlink: Cyan.normal(),
special: Yellow.normal(),
executable: Green.bold(),
image: Fixed(133).normal(),
video: Fixed(135).normal(),
music: Fixed(92).normal(),
lossless: Fixed(93).normal(),
crypto: Fixed(109).normal(),
document: Fixed(105).normal(),
compressed: Red.normal(),
temp: GREY.normal(),
immediate: Yellow.bold().underline(),
compiled: Fixed(137).normal(),
filetypes: FileTypes {
normal: Plain,
directory: Blue.bold(),
symlink: Cyan.normal(),
special: Yellow.normal(),
executable: Green.bold(),
image: Fixed(133).normal(),
video: Fixed(135).normal(),
music: Fixed(92).normal(),
lossless: Fixed(93).normal(),
crypto: Fixed(109).normal(),
document: Fixed(105).normal(),
compressed: Red.normal(),
temp: GREY.normal(),
immediate: Yellow.bold().underline(),
compiled: Fixed(137).normal(),
}
}
}
}

View File

@ -5,21 +5,21 @@ use colours::Colours;
pub fn file_colour(colours: &Colours, file: &File) -> Style {
match file {
f if f.is_directory() => colours.directory,
f if f.is_executable_file() => colours.executable,
f if f.is_link() => colours.symlink,
f if !f.is_file() => colours.special,
f if f.is_immediate() => colours.immediate,
f if f.is_image() => colours.image,
f if f.is_video() => colours.video,
f if f.is_music() => colours.music,
f if f.is_lossless() => colours.lossless,
f if f.is_crypto() => colours.crypto,
f if f.is_document() => colours.document,
f if f.is_compressed() => colours.compressed,
f if f.is_temp() => colours.temp,
f if f.is_compiled() => colours.compiled,
_ => colours.normal,
f if f.is_directory() => colours.filetypes.directory,
f if f.is_executable_file() => colours.filetypes.executable,
f if f.is_link() => colours.filetypes.symlink,
f if !f.is_file() => colours.filetypes.special,
f if f.is_immediate() => colours.filetypes.immediate,
f if f.is_image() => colours.filetypes.image,
f if f.is_video() => colours.filetypes.video,
f if f.is_music() => colours.filetypes.music,
f if f.is_lossless() => colours.filetypes.lossless,
f if f.is_crypto() => colours.filetypes.crypto,
f if f.is_document() => colours.filetypes.document,
f if f.is_compressed() => colours.filetypes.compressed,
f if f.is_temp() => colours.filetypes.temp,
f if f.is_compiled() => colours.filetypes.compiled,
_ => colours.filetypes.normal,
}
}