mirror of
https://github.com/openai/codex.git
synced 2026-04-28 18:32:04 +03:00
2.2 KiB
2.2 KiB
DOs
- Avoid unnecessary clones in comparisons: Compare borrowed values directly; cloning allocates needlessly.
// Good let is_current = preset.model == current_model && preset.effort == current_effort; - Log state changes with before/after context: Include both previous and new values to make audits useful.
let prev_model = current_model.clone(); let prev_effort = current_effort; let model_slug = preset.model.to_string(); let effort = preset.effort; let actions: Vec<SelectionAction> = vec![Box::new(move |tx| { tx.send(AppEvent::UpdateModel(model_slug.clone())); tx.send(AppEvent::UpdateReasoningEffort(effort)); tracing::info!( "Model change: prev={}, new={}; Effort: prev={}, new={}", prev_model, model_slug, prev_effort, effort ); })]; - Clone only at ownership boundaries: Clone when an API requires owned data; borrow for formatting/logging.
tx.send(AppEvent::UpdateModel(model_slug.clone())); // needs owned String tracing::info!("New model: {}", model_slug); // borrow; no clone - Use concise, consistent log phrasing: Keep keys stable and values inline for grepability.
tracing::info!("Model change: prev={}, new={}; Effort: prev={}, new={}", prev_model, model_slug, prev_effort, effort);
DON'Ts
- Don’t clone just to compare: Cloning for equality checks wastes CPU and allocates.
// Bad let is_current = preset.model == current_model.clone() && preset.effort == current_effort; - Don’t clone just to log:
tracing/format!take references; cloning adds no value.// Bad tracing::info!("New model: {}", model_slug.clone()); - Don’t shadow when capturing previous state: Use a distinct name instead of reusing the same identifier.
// Bad let current_model = current_model.clone(); // Good let prev_model = current_model.clone(); - Don’t log only the new value: Without the previous value, change events are hard to interpret.
// Bad tracing::info!("New model: {}", model_slug); // Better tracing::info!("Model change: prev={}, new={}", prev_model, model_slug);