From 40b443138a77edeab2ebc957adaa0d72af7fef59 Mon Sep 17 00:00:00 2001 From: Nicolas Date: Fri, 13 Sep 2024 14:23:13 +0200 Subject: [PATCH] Use `log` crate instead of `eprintln` & remove some unwraps (#5010) - I fixed the TODO to use the `log` crate instead of `eprintln` - Set the rust-version in the `scripts/check.sh` to the same as egui is on - I made xtask use anyhow to remove some unwraps * [x] I have followed the instructions in the PR template --- Cargo.lock | 2 ++ Cargo.toml | 3 ++- crates/eframe/src/native/glow_integration.rs | 2 +- crates/egui/src/hit_test.rs | 2 +- crates/egui_demo_app/src/main.rs | 4 ++-- crates/emath/src/rect.rs | 12 ++++++------ crates/emath/src/smart_aim.rs | 3 --- crates/epaint/src/tessellator.rs | 8 ++++++-- examples/puffin_profiler/Cargo.toml | 1 + examples/puffin_profiler/src/main.rs | 6 ++++-- examples/serial_windows/Cargo.toml | 1 + examples/serial_windows/src/main.rs | 8 ++++---- xtask/src/utils.rs | 2 +- 13 files changed, 31 insertions(+), 23 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d787f6aba03..1a2423eaa8a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3155,6 +3155,7 @@ version = "0.1.0" dependencies = [ "eframe", "env_logger", + "log", "puffin", "puffin_http", ] @@ -3583,6 +3584,7 @@ version = "0.1.0" dependencies = [ "eframe", "env_logger", + "log", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index efd40f1e20b..b8e02f3fdbe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -207,6 +207,7 @@ negative_feature_names = "warn" nonstandard_macro_braces = "warn" option_option = "warn" path_buf_push_overwrite = "warn" +print_stderr = "warn" ptr_as_ptr = "warn" ptr_cast_constness = "warn" pub_without_shorthand = "warn" @@ -251,11 +252,11 @@ wildcard_dependencies = "warn" wildcard_imports = "warn" zero_sized_map_values = "warn" + # TODO(emilk): enable more of these lints: iter_over_hash_type = "allow" let_underscore_untyped = "allow" missing_assert_message = "allow" -print_stderr = "allow" # TODO(emilk): use `log` crate instead should_panic_without_expect = "allow" too_many_lines = "allow" unwrap_used = "allow" # TODO(emilk): We really wanna warn on this one diff --git a/crates/eframe/src/native/glow_integration.rs b/crates/eframe/src/native/glow_integration.rs index 29b832bab90..476b1bdd466 100644 --- a/crates/eframe/src/native/glow_integration.rs +++ b/crates/eframe/src/native/glow_integration.rs @@ -1547,7 +1547,7 @@ fn save_screenshot_and_exit( .unwrap_or_else(|err| { panic!("Failed to save screenshot to {path:?}: {err}"); }); - eprintln!("Screenshot saved to {path:?}."); + log::info!("Screenshot saved to {path:?}."); #[allow(clippy::exit)] std::process::exit(0); diff --git a/crates/egui/src/hit_test.rs b/crates/egui/src/hit_test.rs index 725eebbac72..142645f24e6 100644 --- a/crates/egui/src/hit_test.rs +++ b/crates/egui/src/hit_test.rs @@ -417,7 +417,7 @@ mod tests { ]; for (i, w) in widgets.iter().enumerate() { - eprintln!("Widget {i}: {:?}", w.id); + println!("Widget {i}: {:?}", w.id); } // In the middle of the bg-left-label: diff --git a/crates/egui_demo_app/src/main.rs b/crates/egui_demo_app/src/main.rs index f7b36a5aa08..9f42b422d04 100644 --- a/crates/egui_demo_app/src/main.rs +++ b/crates/egui_demo_app/src/main.rs @@ -64,7 +64,7 @@ fn start_puffin_server() { match puffin_http::Server::new("127.0.0.1:8585") { Ok(puffin_server) => { - eprintln!("Run: cargo install puffin_viewer && puffin_viewer --url 127.0.0.1:8585"); + log::info!("Run: cargo install puffin_viewer && puffin_viewer --url 127.0.0.1:8585"); std::process::Command::new("puffin_viewer") .arg("--url") @@ -78,7 +78,7 @@ fn start_puffin_server() { std::mem::forget(puffin_server); } Err(err) => { - eprintln!("Failed to start puffin server: {err}"); + log::error!("Failed to start puffin server: {err}"); } }; } diff --git a/crates/emath/src/rect.rs b/crates/emath/src/rect.rs index 800093ec3b7..6c0677ad55e 100644 --- a/crates/emath/src/rect.rs +++ b/crates/emath/src/rect.rs @@ -775,22 +775,22 @@ mod tests { fn test_ray_intersection() { let rect = Rect::from_min_max(pos2(1.0, 1.0), pos2(3.0, 3.0)); - eprintln!("Righward ray from left:"); + println!("Righward ray from left:"); assert!(rect.intersects_ray(pos2(0.0, 2.0), Vec2::RIGHT)); - eprintln!("Righward ray from center:"); + println!("Righward ray from center:"); assert!(rect.intersects_ray(pos2(2.0, 2.0), Vec2::RIGHT)); - eprintln!("Righward ray from right:"); + println!("Righward ray from right:"); assert!(!rect.intersects_ray(pos2(4.0, 2.0), Vec2::RIGHT)); - eprintln!("Leftward ray from left:"); + println!("Leftward ray from left:"); assert!(!rect.intersects_ray(pos2(0.0, 2.0), Vec2::LEFT)); - eprintln!("Leftward ray from center:"); + println!("Leftward ray from center:"); assert!(rect.intersects_ray(pos2(2.0, 2.0), Vec2::LEFT)); - eprintln!("Leftward ray from right:"); + println!("Leftward ray from right:"); assert!(rect.intersects_ray(pos2(4.0, 2.0), Vec2::LEFT)); } } diff --git a/crates/emath/src/smart_aim.rs b/crates/emath/src/smart_aim.rs index 23e34abf701..88b807cf80b 100644 --- a/crates/emath/src/smart_aim.rs +++ b/crates/emath/src/smart_aim.rs @@ -56,9 +56,6 @@ pub fn best_in_range_f64(min: f64, max: f64) -> f64 { let min_str = to_decimal_string(min / exp_factor); let max_str = to_decimal_string(max / exp_factor); - // eprintln!("min_str: {:?}", min_str); - // eprintln!("max_str: {:?}", max_str); - let mut ret_str = [0; NUM_DECIMALS]; // Select the common prefix: diff --git a/crates/epaint/src/tessellator.rs b/crates/epaint/src/tessellator.rs index 1ef7c471880..260745fff00 100644 --- a/crates/epaint/src/tessellator.rs +++ b/crates/epaint/src/tessellator.rs @@ -1749,8 +1749,12 @@ impl Tessellator { } if galley.pixels_per_point != self.pixels_per_point { - eprintln!("epaint: WARNING: pixels_per_point (dpi scale) have changed between text layout and tessellation. \ - You must recreate your text shapes if pixels_per_point changes."); + let warn = "epaint: WARNING: pixels_per_point (dpi scale) have changed between text layout and tessellation. \ + You must recreate your text shapes if pixels_per_point changes."; + #[cfg(feature = "log")] + log::warn!("{warn}"); + #[cfg(not(feature = "log"))] + println!("{warn}"); } out.vertices.reserve(galley.num_vertices); diff --git a/examples/puffin_profiler/Cargo.toml b/examples/puffin_profiler/Cargo.toml index d787eeb9168..4527d5c269b 100644 --- a/examples/puffin_profiler/Cargo.toml +++ b/examples/puffin_profiler/Cargo.toml @@ -25,5 +25,6 @@ env_logger = { version = "0.10", default-features = false, features = [ "auto-color", "humantime", ] } +log = { workspace = true } puffin = "0.19" puffin_http = "0.16" diff --git a/examples/puffin_profiler/src/main.rs b/examples/puffin_profiler/src/main.rs index 5ae9bf03863..91e3d58666b 100644 --- a/examples/puffin_profiler/src/main.rs +++ b/examples/puffin_profiler/src/main.rs @@ -9,6 +9,8 @@ use std::sync::{ use eframe::egui; fn main() -> eframe::Result { + let rust_log = std::env::var("RUST_LOG").unwrap_or_else(|_| "info".to_owned()); + std::env::set_var("RUST_LOG", rust_log); env_logger::init(); // Log to stderr (if you run with `RUST_LOG=debug`). start_puffin_server(); // NOTE: you may only want to call this if the users specifies some flag or clicks a button! @@ -153,7 +155,7 @@ fn start_puffin_server() { match puffin_http::Server::new("127.0.0.1:8585") { Ok(puffin_server) => { - eprintln!("Run: cargo install puffin_viewer && puffin_viewer --url 127.0.0.1:8585"); + log::info!("Run: cargo install puffin_viewer && puffin_viewer --url 127.0.0.1:8585"); std::process::Command::new("puffin_viewer") .arg("--url") @@ -167,7 +169,7 @@ fn start_puffin_server() { std::mem::forget(puffin_server); } Err(err) => { - eprintln!("Failed to start puffin server: {err}"); + log::error!("Failed to start puffin server: {err}"); } }; } diff --git a/examples/serial_windows/Cargo.toml b/examples/serial_windows/Cargo.toml index eebd08957af..5d52826e919 100644 --- a/examples/serial_windows/Cargo.toml +++ b/examples/serial_windows/Cargo.toml @@ -20,3 +20,4 @@ env_logger = { version = "0.10", default-features = false, features = [ "auto-color", "humantime", ] } +log = { workspace = true } diff --git a/examples/serial_windows/src/main.rs b/examples/serial_windows/src/main.rs index f82881e84fe..0b2f0e78bf1 100644 --- a/examples/serial_windows/src/main.rs +++ b/examples/serial_windows/src/main.rs @@ -12,7 +12,7 @@ fn main() -> eframe::Result { ..Default::default() }; - eprintln!("Starting first window…"); + log::info!("Starting first window…"); eframe::run_native( "First Window", options.clone(), @@ -21,7 +21,7 @@ fn main() -> eframe::Result { std::thread::sleep(std::time::Duration::from_secs(2)); - eprintln!("Starting second window…"); + log::info!("Starting second window…"); eframe::run_native( "Second Window", options.clone(), @@ -30,7 +30,7 @@ fn main() -> eframe::Result { std::thread::sleep(std::time::Duration::from_secs(2)); - eprintln!("Starting third window…"); + log::info!("Starting third window…"); eframe::run_native( "Third Window", options, @@ -53,7 +53,7 @@ impl eframe::App for MyApp { ui.label(label_text); if ui.button("Close").clicked() { - eprintln!("Pressed Close button"); + log::info!("Pressed Close button"); ui.ctx().send_viewport_cmd(egui::ViewportCommand::Close); } }); diff --git a/xtask/src/utils.rs b/xtask/src/utils.rs index 760c27f8f14..afefa6054f4 100644 --- a/xtask/src/utils.rs +++ b/xtask/src/utils.rs @@ -34,7 +34,7 @@ pub fn ask_to_run(mut cmd: Command, ask: bool, reason: &str) -> Result<(), DynEr a => return Err(format!("Invalid answer `{a}`").into()), }; } else { - eprintln!("Running `{cmd:?}` to {reason}."); + println!("Running `{cmd:?}` to {reason}."); } let status = cmd.status()?;