From deafead16939958627eb3a4a8a42abc3b58cd6b7 Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Thu, 18 Dec 2025 08:50:13 -0800 Subject: [PATCH] chore: prefer AsRef to &Path (#8249) This is some minor API cleanup that will make it easier to use `AbsolutePathBuf` in more places in a subsequent PR. --- codex-rs/core/src/config/service.rs | 12 ++++++------ codex-rs/core/src/config_loader/layer_io.rs | 12 ++++++------ codex-rs/core/src/path_utils.rs | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/codex-rs/core/src/config/service.rs b/codex-rs/core/src/config/service.rs index 398a74c0d..713d5c9e7 100644 --- a/codex-rs/core/src/config/service.rs +++ b/codex-rs/core/src/config/service.rs @@ -470,15 +470,15 @@ fn validate_config(value: &TomlValue) -> Result<(), toml::de::Error> { Ok(()) } -fn paths_match(expected: &Path, provided: &Path) -> bool { +fn paths_match(expected: impl AsRef, provided: impl AsRef) -> bool { if let (Ok(expanded_expected), Ok(expanded_provided)) = ( - path_utils::normalize_for_path_comparison(expected), - path_utils::normalize_for_path_comparison(provided), + path_utils::normalize_for_path_comparison(&expected), + path_utils::normalize_for_path_comparison(&provided), ) { - return expanded_expected == expanded_provided; + expanded_expected == expanded_provided + } else { + expected.as_ref() == provided.as_ref() } - - expected == provided } fn value_at_path<'a>(root: &'a TomlValue, segments: &[String]) -> Option<&'a TomlValue> { diff --git a/codex-rs/core/src/config_loader/layer_io.rs b/codex-rs/core/src/config_loader/layer_io.rs index 58ccab194..d9dd449e8 100644 --- a/codex-rs/core/src/config_loader/layer_io.rs +++ b/codex-rs/core/src/config_loader/layer_io.rs @@ -56,27 +56,27 @@ pub(super) async fn load_config_layers_internal( } pub(super) async fn read_config_from_path( - path: &Path, + path: impl AsRef, log_missing_as_info: bool, ) -> io::Result> { - match fs::read_to_string(path).await { + match fs::read_to_string(path.as_ref()).await { Ok(contents) => match toml::from_str::(&contents) { Ok(value) => Ok(Some(value)), Err(err) => { - tracing::error!("Failed to parse {}: {err}", path.display()); + tracing::error!("Failed to parse {}: {err}", path.as_ref().display()); Err(io::Error::new(io::ErrorKind::InvalidData, err)) } }, Err(err) if err.kind() == io::ErrorKind::NotFound => { if log_missing_as_info { - tracing::info!("{} not found, using defaults", path.display()); + tracing::info!("{} not found, using defaults", path.as_ref().display()); } else { - tracing::debug!("{} not found", path.display()); + tracing::debug!("{} not found", path.as_ref().display()); } Ok(None) } Err(err) => { - tracing::error!("Failed to read {}: {err}", path.display()); + tracing::error!("Failed to read {}: {err}", path.as_ref().display()); Err(err) } } diff --git a/codex-rs/core/src/path_utils.rs b/codex-rs/core/src/path_utils.rs index 9a7007e4f..65b3db0f6 100644 --- a/codex-rs/core/src/path_utils.rs +++ b/codex-rs/core/src/path_utils.rs @@ -3,8 +3,8 @@ use std::path::PathBuf; use crate::env; -pub fn normalize_for_path_comparison(path: &Path) -> std::io::Result { - let canonical = path.canonicalize()?; +pub fn normalize_for_path_comparison(path: impl AsRef) -> std::io::Result { + let canonical = path.as_ref().canonicalize()?; Ok(normalize_for_wsl(canonical)) }