Skip to content

Commit d066891

Browse files
committed
config: init
1 parent 806e3cd commit d066891

File tree

4 files changed

+44
-4
lines changed

4 files changed

+44
-4
lines changed

src/cli.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use num_format::CustomFormat;
1010
use onefetch_image::ImageProtocol;
1111
use onefetch_manifest::ManifestType;
1212
use regex::Regex;
13-
use serde::Serialize;
13+
use serde::{Deserialize, Serialize};
1414
use std::env;
1515
use std::io;
1616
use std::path::PathBuf;
@@ -366,15 +366,17 @@ pub fn print_completions<G: Generator>(gen: G, cmd: &mut Command) {
366366
generate(gen, cmd, cmd.get_name().to_string(), &mut io::stdout());
367367
}
368368

369-
#[derive(clap::ValueEnum, Clone, PartialEq, Eq, Debug)]
369+
#[derive(clap::ValueEnum, Clone, PartialEq, Eq, Debug, Serialize, Deserialize, Default)]
370370
pub enum When {
371+
#[default]
371372
Auto,
372373
Never,
373374
Always,
374375
}
375376

376-
#[derive(clap::ValueEnum, Clone, PartialEq, Eq, Debug, Serialize, Copy)]
377+
#[derive(clap::ValueEnum, Clone, PartialEq, Eq, Debug, Deserialize, Serialize, Copy, Default)]
377378
pub enum NumberSeparator {
379+
#[default]
378380
Plain,
379381
Comma,
380382
Space,

src/config.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
use serde::{Deserialize, Serialize};
2+
use crate::{
3+
cli::{NumberSeparator, When},
4+
info::utils::info_field::InfoType,
5+
};
6+
7+
#[derive(Serialize, Deserialize)]
8+
pub struct ConfigOptions {
9+
// THIS IS JUST A RAW, REALLY WIP CONFIG STRUCTURE
10+
#[serde(default)]
11+
pub disabled_fields: Vec<InfoType>,
12+
// Lol is this really will turn into comment?
13+
/// Or maybe this?
14+
#[serde(default)]
15+
pub no_title: bool,
16+
#[serde(default)]
17+
pub number_of_authors: usize,
18+
#[serde(default)]
19+
pub number_of_languages: usize,
20+
#[serde(default)]
21+
pub number_of_file_churns: usize,
22+
#[serde(default)]
23+
pub no_merges: bool,
24+
#[serde(default)]
25+
pub include_hidden: bool,
26+
#[serde(default)]
27+
pub iso_time: bool,
28+
#[serde(default)]
29+
pub number_separator: NumberSeparator,
30+
#[serde(default)]
31+
pub no_bold: bool,
32+
#[serde(default)]
33+
pub true_color: When,
34+
#[serde(default)]
35+
pub nerd_fonts: bool,
36+
}

src/info/utils/info_field.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use crate::{info::utils::get_style, ui::text_colors::TextColors};
22
use owo_colors::OwoColorize;
3+
use serde::{Deserialize, Serialize};
34
use std::fmt;
45

56
#[typetag::serialize]
@@ -55,7 +56,7 @@ pub trait InfoField {
5556
}
5657
}
5758

58-
#[derive(Clone, clap::ValueEnum, Debug, Eq, PartialEq)]
59+
#[derive(Clone, clap::ValueEnum, Debug, Eq, PartialEq, Serialize, Deserialize)]
5960
pub enum InfoType {
6061
Project,
6162
Description,

src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
// Lib is present to allow for benchmarks and integration tests
22
pub mod cli;
3+
pub mod config;
34
pub mod info;
45
pub mod ui;

0 commit comments

Comments
 (0)