Flatten MetadataConfig so it can be enabled by default
- Id
- 427aa1a758b2a20e3b8b6e9db78215d0e7c931d6
- Author
- Caio
- Commit time
- 2024-03-02T09:22:23+01:00
Modified caca/src/config.rs
pub max_file_size_bytes: u64,
pub repo_object_cache_size: usize,
pub rename_similarity_threshold: Option<f32>,
- pub metadata_config: Option<MetadataConfig>,
- // TODO merge mailmap_config / global_mailmap
+ pub metadata_config: MetadataConfig,
pub global_mailmap: Option<PathBuf>,
pub feed_size: Option<NonZeroUsize>,
pub log_size: NonZeroUsize,
#[derive(Debug, Clone)]
pub(crate) struct MetadataConfig {
pub spec: Option<String>,
- pub filename: Option<PathBuf>,
+ pub filename: Option<String>,
+ pub enabled: bool,
}
impl Default for MetadataConfig {
fn default() -> Self {
Self {
- spec: Some("HEAD".to_string()),
- // gitconfig is not quite .ini eh
- filename: Some(PathBuf::from(".config/caca.ini")),
+ spec: None,
+ filename: None,
+ enabled: true,
}
}
}
-#[derive(Debug, Clone)]
+impl MetadataConfig {
+ pub(crate) fn spec(&self) -> &str {
+ self.spec.as_deref().unwrap_or("HEAD")
+ }
+
+ pub(crate) fn filename(&self) -> &str {
+ self.filename.as_deref().unwrap_or(".config/caca.ini")
+ }
+}
+
+#[derive(Debug, Clone, PartialEq)]
pub(crate) enum ListenMode {
External,
Bind(BindOptions),
Modified caca/src/main.rs
max_file_size_bytes: 2 * 1024 * 1024,
rename_similarity_threshold: Some(0.7),
repo_object_cache_size: 20 * 1024 * 1024,
- metadata_config: Some(config::MetadataConfig::default()),
+ metadata_config: config::MetadataConfig::default(),
global_mailmap: None,
feed_size: NonZeroUsize::new(40),
log_size: NonZeroUsize::new(30).unwrap(),
Modified caca/src/metadata.rs
pub(crate) fn read_metadata(
urso: &urso::Urso,
rev: &str,
- path: &std::path::Path,
+ path: &str,
buf: &mut Vec<u8>,
) -> Metadata {
let head = match urso.rev_parse(rev) {
Modified caca/src/repo/mod.rs
.clone();
let head_id = head.commit.id.id;
- let metadata = if let Some(ref conf) = config.metadata_config {
+ let metadata = if config.metadata_config.enabled {
buf.clear();
read_metadata(
urso,
- conf.spec.as_deref().unwrap_or("HEAD"),
- conf.filename
- .as_deref()
- .unwrap_or(std::path::Path::new(".config/caca.ini")),
+ config.metadata_config.spec(),
+ config.metadata_config.filename(),
&mut buf,
)
} else {