diff options
author | 2022-07-09 18:42:41 +0200 | |
---|---|---|
committer | 2022-07-09 18:43:05 +0200 | |
commit | 2065a40f642589134142a740ff4198deaa4c378b (patch) | |
tree | 00477d6d7cb571332062535557151d5b031d8925 | |
parent | d53cc5498b92fb6b573867f5ccb5f8ac93f6be79 (diff) | |
download | iced-2065a40f642589134142a740ff4198deaa4c378b.tar.gz iced-2065a40f642589134142a740ff4198deaa4c378b.tar.bz2 iced-2065a40f642589134142a740ff4198deaa4c378b.zip |
Fix `clippy` lints for all crates and features
... and check those in CI as well!
55 files changed, 237 insertions, 232 deletions
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a52b79ed..688c2087 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -9,4 +9,4 @@ jobs: components: clippy - uses: actions/checkout@master - name: Check lints - run: cargo clippy --all --no-deps + run: cargo clippy --all --all-features --no-deps diff --git a/examples/color_palette/src/main.rs b/examples/color_palette/src/main.rs index 16c87a75..cc1af750 100644 --- a/examples/color_palette/src/main.rs +++ b/examples/color_palette/src/main.rs @@ -84,7 +84,7 @@ impl Sandbox for ColorPalette { } #[derive(Debug)] -pub struct Theme { +struct Theme { lower: Vec<Color>, base: Color, higher: Vec<Color>, diff --git a/examples/component/src/main.rs b/examples/component/src/main.rs index b6ff0600..6a8f53e2 100644 --- a/examples/component/src/main.rs +++ b/examples/component/src/main.rs @@ -150,8 +150,7 @@ mod numeric_input { self.value .as_ref() .map(u32::to_string) - .as_ref() - .map(String::as_str) + .as_deref() .unwrap_or(""), Event::InputChanged, ) diff --git a/examples/custom_widget/src/main.rs b/examples/custom_widget/src/main.rs index ce5306ba..d1a7bb06 100644 --- a/examples/custom_widget/src/main.rs +++ b/examples/custom_widget/src/main.rs @@ -64,12 +64,12 @@ mod circle { } } - impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> for Circle + impl<'a, Message, Renderer> From<Circle> for Element<'a, Message, Renderer> where Renderer: renderer::Renderer, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(circle: Circle) -> Self { + Self::new(circle) } } } diff --git a/examples/download_progress/src/main.rs b/examples/download_progress/src/main.rs index 4a801ba4..2999bc7e 100644 --- a/examples/download_progress/src/main.rs +++ b/examples/download_progress/src/main.rs @@ -49,7 +49,7 @@ impl Application for Example { fn update(&mut self, message: Message) -> Command<Message> { match message { Message::Add => { - self.last_id = self.last_id + 1; + self.last_id += 1; self.downloads.push(Download::new(self.last_id)); } @@ -134,8 +134,8 @@ impl Download { } pub fn progress(&mut self, new_progress: download::Progress) { - match &mut self.state { - State::Downloading { progress } => match new_progress { + if let State::Downloading { progress } = &mut self.state { + match new_progress { download::Progress::Started => { *progress = 0.0; } @@ -152,8 +152,7 @@ impl Download { button: button::State::new(), }; } - }, - _ => {} + } } } diff --git a/examples/game_of_life/src/main.rs b/examples/game_of_life/src/main.rs index 35399584..62ecc2d1 100644 --- a/examples/game_of_life/src/main.rs +++ b/examples/game_of_life/src/main.rs @@ -280,7 +280,7 @@ mod grid { } } - pub fn view<'a>(&'a mut self) -> Element<'a, Message> { + pub fn view(&mut self) -> Element<Message> { Canvas::new(self) .width(Length::Fill) .height(Length::Fill) @@ -328,7 +328,7 @@ mod grid { } } - impl<'a> canvas::Program<Message> for Grid { + impl canvas::Program<Message> for Grid { fn update( &mut self, event: Event, @@ -826,13 +826,13 @@ struct Controls { } impl Controls { - fn view<'a>( - &'a mut self, + fn view( + &mut self, is_playing: bool, is_grid_enabled: bool, speed: usize, preset: Preset, - ) -> Element<'a, Message> { + ) -> Element<Message> { let playback_controls = Row::new() .spacing(10) .push( diff --git a/examples/game_of_life/src/preset.rs b/examples/game_of_life/src/preset.rs index 05157b6a..964b9120 100644 --- a/examples/game_of_life/src/preset.rs +++ b/examples/game_of_life/src/preset.rs @@ -1,7 +1,7 @@ #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum Preset { Custom, - XKCD, + Xkcd, Glider, SmallExploder, Exploder, @@ -14,7 +14,7 @@ pub enum Preset { pub static ALL: &[Preset] = &[ Preset::Custom, - Preset::XKCD, + Preset::Xkcd, Preset::Glider, Preset::SmallExploder, Preset::Exploder, @@ -30,7 +30,7 @@ impl Preset { #[rustfmt::skip] let cells = match self { Preset::Custom => vec![], - Preset::XKCD => vec![ + Preset::Xkcd => vec![ " xxx ", " x x ", " x x ", @@ -116,7 +116,7 @@ impl Preset { impl Default for Preset { fn default() -> Preset { - Preset::XKCD + Preset::Xkcd } } @@ -127,7 +127,7 @@ impl std::fmt::Display for Preset { "{}", match self { Preset::Custom => "Custom", - Preset::XKCD => "xkcd #2293", + Preset::Xkcd => "xkcd #2293", Preset::Glider => "Glider", Preset::SmallExploder => "Small Exploder", Preset::Exploder => "Exploder", diff --git a/examples/geometry/src/main.rs b/examples/geometry/src/main.rs index ba4b808e..03eac69e 100644 --- a/examples/geometry/src/main.rs +++ b/examples/geometry/src/main.rs @@ -17,6 +17,7 @@ mod rainbow { layout, Element, Layout, Length, Point, Rectangle, Size, Vector, Widget, }; + #[derive(Default)] pub struct Rainbow; impl Rainbow { @@ -148,12 +149,12 @@ mod rainbow { } } - impl<'a, Message, B, T> Into<Element<'a, Message, Renderer<B, T>>> for Rainbow + impl<'a, Message, B, T> From<Rainbow> for Element<'a, Message, Renderer<B, T>> where B: Backend, { - fn into(self) -> Element<'a, Message, Renderer<B, T>> { - Element::new(self) + fn from(rainbow: Rainbow) -> Self { + Self::new(rainbow) } } } diff --git a/examples/integration_opengl/src/main.rs b/examples/integration_opengl/src/main.rs index 1a78a493..f161c8a0 100644 --- a/examples/integration_opengl/src/main.rs +++ b/examples/integration_opengl/src/main.rs @@ -58,7 +58,7 @@ pub fn main() { let mut cursor_position = PhysicalPosition::new(-1.0, -1.0); let mut modifiers = ModifiersState::default(); - let mut clipboard = Clipboard::connect(&windowed_context.window()); + let mut clipboard = Clipboard::connect(windowed_context.window()); let mut renderer = Renderer::new(Backend::new(&gl, Settings::default())); @@ -73,13 +73,12 @@ pub fn main() { ); let mut resized = false; - let scene = Scene::new(&gl, &shader_version); + let scene = Scene::new(&gl, shader_version); event_loop.run(move |event, _, control_flow| { *control_flow = ControlFlow::Wait; match event { - Event::LoopDestroyed => return, Event::WindowEvent { event, .. } => { match event { WindowEvent::CursorMoved { position, .. } => { diff --git a/examples/integration_wgpu/src/controls.rs b/examples/integration_wgpu/src/controls.rs index cb2c423f..2f1daa91 100644 --- a/examples/integration_wgpu/src/controls.rs +++ b/examples/integration_wgpu/src/controls.rs @@ -112,7 +112,7 @@ impl Program for Controls { t, "Placeholder", text, - move |text| Message::TextChanged(text), + Message::TextChanged, )), ), ) diff --git a/examples/integration_wgpu/src/main.rs b/examples/integration_wgpu/src/main.rs index 3d27a0f0..86a0d6a4 100644 --- a/examples/integration_wgpu/src/main.rs +++ b/examples/integration_wgpu/src/main.rs @@ -73,7 +73,7 @@ pub fn main() { let instance = wgpu::Instance::new(backend); let surface = unsafe { instance.create_surface(&window) }; - let (format, (mut device, queue)) = futures::executor::block_on(async { + let (format, (device, queue)) = futures::executor::block_on(async { let adapter = wgpu::util::initialize_adapter_from_env_or_default( &instance, backend, @@ -128,13 +128,13 @@ pub fn main() { let mut staging_belt = wgpu::util::StagingBelt::new(5 * 1024); // Initialize scene and GUI controls - let scene = Scene::new(&mut device, format); + let scene = Scene::new(&device, format); let controls = Controls::new(); // Initialize iced let mut debug = Debug::new(); let mut renderer = - Renderer::new(Backend::new(&mut device, Settings::default(), format)); + Renderer::new(Backend::new(&device, Settings::default(), format)); let mut state = program::State::new( controls, @@ -208,8 +208,8 @@ pub fn main() { surface.configure( &device, &wgpu::SurfaceConfiguration { + format, usage: wgpu::TextureUsages::RENDER_ATTACHMENT, - format: format, width: size.width, height: size.height, present_mode: wgpu::PresentMode::AutoVsync, @@ -244,7 +244,7 @@ pub fn main() { // And then iced on top renderer.with_primitives(|backend, primitive| { backend.present( - &mut device, + &device, &mut staging_belt, &mut encoder, &view, diff --git a/examples/integration_wgpu/src/scene.rs b/examples/integration_wgpu/src/scene.rs index af75e67c..3e41fbda 100644 --- a/examples/integration_wgpu/src/scene.rs +++ b/examples/integration_wgpu/src/scene.rs @@ -66,40 +66,37 @@ fn build_pipeline( bind_group_layouts: &[], }); - let pipeline = - device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { - label: None, - layout: Some(&pipeline_layout), - vertex: wgpu::VertexState { - module: &vs_module, - entry_point: "main", - buffers: &[], - }, - fragment: Some(wgpu::FragmentState { - module: &fs_module, - entry_point: "main", - targets: &[Some(wgpu::ColorTargetState { - format: texture_format, - blend: Some(wgpu::BlendState { - color: wgpu::BlendComponent::REPLACE, - alpha: wgpu::BlendComponent::REPLACE, - }), - write_mask: wgpu::ColorWrites::ALL, - })], - }), - primitive: wgpu::PrimitiveState { - topology: wgpu::PrimitiveTopology::TriangleList, - front_face: wgpu::FrontFace::Ccw, - ..Default::default() - }, - depth_stencil: None, - multisample: wgpu::MultisampleState { - count: 1, - mask: !0, - alpha_to_coverage_enabled: false, - }, - multiview: None, - }); - - pipeline + device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: None, + layout: Some(&pipeline_layout), + vertex: wgpu::VertexState { + module: &vs_module, + entry_point: "main", + buffers: &[], + }, + fragment: Some(wgpu::FragmentState { + module: &fs_module, + entry_point: "main", + targets: &[Some(wgpu::ColorTargetState { + format: texture_format, + blend: Some(wgpu::BlendState { + color: wgpu::BlendComponent::REPLACE, + alpha: wgpu::BlendComponent::REPLACE, + }), + write_mask: wgpu::ColorWrites::ALL, + })], + }), + primitive: wgpu::PrimitiveState { + topology: wgpu::PrimitiveTopology::TriangleList, + front_face: wgpu::FrontFace::Ccw, + ..Default::default() + }, + depth_stencil: None, + multisample: wgpu::MultisampleState { + count: 1, + mask: !0, + alpha_to_coverage_enabled: false, + }, + multiview: None, + }) } diff --git a/examples/pokedex/src/main.rs b/examples/pokedex/src/main.rs index 89d865e4..a1cf68e8 100644 --- a/examples/pokedex/src/main.rs +++ b/examples/pokedex/src/main.rs @@ -192,8 +192,7 @@ impl Pokemon { let description = entry .flavor_text_entries .iter() - .filter(|text| text.language.name == "en") - .next() + .find(|text| text.language.name == "en") .ok_or(Error::LanguageError)?; Ok(Pokemon { diff --git a/examples/pure/component/src/main.rs b/examples/pure/component/src/main.rs index 64935afd..db22d019 100644 --- a/examples/pure/component/src/main.rs +++ b/examples/pure/component/src/main.rs @@ -143,8 +143,7 @@ mod numeric_input { self.value .as_ref() .map(u32::to_string) - .as_ref() - .map(String::as_str) + .as_deref() .unwrap_or(""), Event::InputChanged, ) diff --git a/examples/pure/game_of_life/src/main.rs b/examples/pure/game_of_life/src/main.rs index 851fbd47..cf6560d6 100644 --- a/examples/pure/game_of_life/src/main.rs +++ b/examples/pure/game_of_life/src/main.rs @@ -350,7 +350,7 @@ mod grid { } } - pub fn view<'a>(&'a self) -> Element<'a, Message> { + pub fn view(&self) -> Element<Message> { Canvas::new(self) .width(Length::Fill) .height(Length::Fill) diff --git a/examples/pure/game_of_life/src/preset.rs b/examples/pure/game_of_life/src/preset.rs index 05157b6a..964b9120 100644 --- a/examples/pure/game_of_life/src/preset.rs +++ b/examples/pure/game_of_life/src/preset.rs @@ -1,7 +1,7 @@ #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum Preset { Custom, - XKCD, + Xkcd, Glider, SmallExploder, Exploder, @@ -14,7 +14,7 @@ pub enum Preset { pub static ALL: &[Preset] = &[ Preset::Custom, - Preset::XKCD, + Preset::Xkcd, Preset::Glider, Preset::SmallExploder, Preset::Exploder, @@ -30,7 +30,7 @@ impl Preset { #[rustfmt::skip] let cells = match self { Preset::Custom => vec![], - Preset::XKCD => vec![ + Preset::Xkcd => vec![ " xxx ", " x x ", " x x ", @@ -116,7 +116,7 @@ impl Preset { impl Default for Preset { fn default() -> Preset { - Preset::XKCD + Preset::Xkcd } } @@ -127,7 +127,7 @@ impl std::fmt::Display for Preset { "{}", match self { Preset::Custom => "Custom", - Preset::XKCD => "xkcd #2293", + Preset::Xkcd => "xkcd #2293", Preset::Glider => "Glider", Preset::SmallExploder => "Small Exploder", Preset::Exploder => "Exploder", diff --git a/examples/pure/todos/src/main.rs b/examples/pure/todos/src/main.rs index 723386ad..c2313035 100644 --- a/examples/pure/todos/src/main.rs +++ b/examples/pure/todos/src/main.rs @@ -167,7 +167,7 @@ impl Application for Todos { .size(30) .on_submit(Message::CreateTask); - let controls = view_controls(&tasks, *filter); + let controls = view_controls(tasks, *filter); let filtered_tasks = tasks.iter().filter(|task| filter.matches(task)); @@ -446,15 +446,15 @@ struct SavedState { #[derive(Debug, Clone)] enum LoadError { - FileError, - FormatError, + File, + Format, } #[derive(Debug, Clone)] enum SaveError { - FileError, - WriteError, - FormatError, + File, + Write, + Format, } #[cfg(not(target_arch = "wasm32"))] @@ -465,7 +465,7 @@ impl SavedState { { project_dirs.data_dir().into() } else { - std::env::current_dir().unwrap_or(std::path::PathBuf::new()) + std::env::current_dir().unwrap_or_default() }; path.push("todos.json"); @@ -480,37 +480,37 @@ impl SavedState { let mut file = async_std::fs::File::open(Self::path()) .await - .map_err(|_| LoadError::FileError)?; + .map_err(|_| LoadError::File)?; file.read_to_string(&mut contents) .await - .map_err(|_| LoadError::FileError)?; + .map_err(|_| LoadError::File)?; - serde_json::from_str(&contents).map_err(|_| LoadError::FormatError) + serde_json::from_str(&contents).map_err(|_| LoadError::Format) } async fn save(self) -> Result<(), SaveError> { use async_std::prelude::*; let json = serde_json::to_string_pretty(&self) - .map_err(|_| SaveError::FormatError)?; + .map_err(|_| SaveError::Format)?; let path = Self::path(); if let Some(dir) = path.parent() { async_std::fs::create_dir_all(dir) .await - .map_err(|_| SaveError::FileError)?; + .map_err(|_| SaveError::File)?; } { let mut file = async_std::fs::File::create(path) .await - .map_err(|_| SaveError::FileError)?; + .map_err(|_| SaveError::File)?; file.write_all(json.as_bytes()) .await - .map_err(|_| SaveError::WriteError)?; + .map_err(|_| SaveError::Write)?; } // This is a simple way to save at most once every couple seconds diff --git a/examples/pure/tour/src/main.rs b/examples/pure/tour/src/main.rs index 477a1ec7..05c269c3 100644 --- a/examples/pure/tour/src/main.rs +++ b/examples/pure/tour/src/main.rs @@ -78,14 +78,6 @@ impl Sandbox for Tour { .push(controls) .into(); - let content = if self.debug { - // TODO - //content.explain(Color::BLACK) - content - } else { - content - }; - let scrollable = scrollable(container(content).width(Length::Fill).center_x()); @@ -494,7 +486,7 @@ impl<'a> Step { .push(ferris(width)) .push(slider(100..=500, width, StepMessage::ImageWidthChanged)) .push( - text(format!("Width: {} px", width.to_string())) + text(format!("Width: {} px", width)) .width(Length::Fill) .horizontal_alignment(alignment::Horizontal::Center), ) diff --git a/examples/solar_system/src/main.rs b/examples/solar_system/src/main.rs index cee9a02f..fc53d8f7 100644 --- a/examples/solar_system/src/main.rs +++ b/examples/solar_system/src/main.rs @@ -65,8 +65,7 @@ impl Application for SolarSystem { } fn subscription(&self) -> Subscription<Message> { - time::every(std::time::Duration::from_millis(10)) - .map(|instant| Message::Tick(instant)) + time::every(std::time::Duration::from_millis(10)).map(Message::Tick) } fn view(&mut self) -> Element<Message> { diff --git a/examples/stopwatch/src/main.rs b/examples/stopwatch/src/main.rs index b83b92ec..b7c816ff 100644 --- a/examples/stopwatch/src/main.rs +++ b/examples/stopwatch/src/main.rs @@ -67,13 +67,12 @@ impl Application for Stopwatch { self.state = State::Idle; } }, - Message::Tick(now) => match &mut self.state { - State::Ticking { last_tick } => { + Message::Tick(now) => { + if let State::Ticking { last_tick } = &mut self.state { self.duration += now - *last_tick; *last_tick = now; } - _ => {} - }, + } Message::Reset => { self.duration = Duration::default(); } diff --git a/examples/system_information/src/main.rs b/examples/system_information/src/main.rs index 9e6a2f61..54fc635f 100644 --- a/examples/system_information/src/main.rs +++ b/examples/system_information/src/main.rs @@ -107,11 +107,8 @@ impl Application for Example { ByteSize::kb(information.memory_total).to_string(); let memory_total = Text::new(format!( - "Memory (total): {}", - format!( - "{} kb ({})", - information.memory_total, memory_readable - ) + "Memory (total): {} kb ({})", + information.memory_total, memory_readable )); let memory_text = if let Some(memory_used) = diff --git a/examples/todos/src/main.rs b/examples/todos/src/main.rs index dc080ef5..7bfc2a34 100644 --- a/examples/todos/src/main.rs +++ b/examples/todos/src/main.rs @@ -168,7 +168,7 @@ impl Application for Todos { .size(30) .on_submit(Message::CreateTask); - let controls = controls.view(&tasks, *filter); + let controls = controls.view(tasks, *filter); let filtered_tasks = tasks.iter().filter(|task| filter.matches(task)); @@ -493,15 +493,15 @@ struct SavedState { #[derive(Debug, Clone)] enum LoadError { - FileError, - FormatError, + File, + Format, } #[derive(Debug, Clone)] enum SaveError { - FileError, - WriteError, - FormatError, + File, + Write, + Format, } #[cfg(not(target_arch = "wasm32"))] @@ -512,7 +512,7 @@ impl SavedState { { project_dirs.data_dir().into() } else { - std::env::current_dir().unwrap_or(std::path::PathBuf::new()) + std::env::current_dir().unwrap_or_default() }; path.push("todos.json"); @@ -527,37 +527,37 @@ impl SavedState { let mut file = async_std::fs::File::open(Self::path()) .await - .map_err(|_| LoadError::FileError)?; + .map_err(|_| LoadError::File)?; file.read_to_string(&mut contents) .await - .map_err(|_| LoadError::FileError)?; + .map_err(|_| LoadError::File)?; - serde_json::from_str(&contents).map_err(|_| LoadError::FormatError) + serde_json::from_str(&contents).map_err(|_| LoadError::Format) } async fn save(self) -> Result<(), SaveError> { use async_std::prelude::*; let json = serde_json::to_string_pretty(&self) - .map_err(|_| SaveError::FormatError)?; + .map_err(|_| SaveError::Format)?; let path = Self::path(); if let Some(dir) = path.parent() { async_std::fs::create_dir_all(dir) .await - .map_err(|_| SaveError::FileError)?; + .map_err(|_| SaveError::File)?; } { let mut file = async_std::fs::File::create(path) .await - .map_err(|_| SaveError::FileError)?; + .map_err(|_| SaveError::File)?; file.write_all(json.as_bytes()) .await - .map_err(|_| SaveError::WriteError)?; + .map_err(|_| SaveError::Write)?; } // This is a simple way to save at most once every couple seconds diff --git a/examples/tooltip/src/main.rs b/examples/tooltip/src/main.rs index 1bd1133c..7c800112 100644 --- a/examples/tooltip/src/main.rs +++ b/examples/tooltip/src/main.rs @@ -54,16 +54,11 @@ impl Sandbox for Example { tooltip::Position::Right, ); - let fixed_tooltips = Row::with_children(vec![ - top.into(), - bottom.into(), - left.into(), - right.into(), - ]) - .width(Length::Fill) - .height(Length::Fill) - .align_items(Alignment::Center) - .spacing(50); + let fixed_tooltips = Row::with_children(vec![top, bottom, left, right]) + .width(Length::Fill) + .height(Length::Fill) + .align_items(Alignment::Center) + .spacing(50); let follow_cursor = tooltip( "Tooltip follows cursor", @@ -78,7 +73,7 @@ impl Sandbox for Example { .center_x() .center_y() .into(), - follow_cursor.into(), + follow_cursor, ]) .width(Length::Fill) .height(Length::Fill) diff --git a/examples/url_handler/src/main.rs b/examples/url_handler/src/main.rs index b544c30d..3695b6b7 100644 --- a/examples/url_handler/src/main.rs +++ b/examples/url_handler/src/main.rs @@ -57,7 +57,7 @@ impl Application for App { fn view(&mut self) -> Element<Message> { let content = match &self.url { - Some(url) => Text::new(format!("{}", url)), + Some(url) => Text::new(url), None => Text::new("No URL received yet!"), }; diff --git a/examples/websocket/src/echo.rs b/examples/websocket/src/echo.rs index 13596ddd..88321880 100644 --- a/examples/websocket/src/echo.rs +++ b/examples/websocket/src/echo.rs @@ -32,7 +32,7 @@ pub fn connect() -> Subscription<Event> { ) } Err(_) => { - let _ = tokio::time::sleep( + tokio::time::sleep( tokio::time::Duration::from_secs(1), ) .await; @@ -79,6 +79,7 @@ pub fn connect() -> Subscription<Event> { } #[derive(Debug)] +#[allow(clippy::large_enum_variant)] enum State { Disconnected, Connected( @@ -101,8 +102,7 @@ pub struct Connection(mpsc::Sender<Message>); impl Connection { pub fn send(&mut self, message: Message) { - let _ = self - .0 + self.0 .try_send(message) .expect("Send message to echo server"); } diff --git a/examples/websocket/src/echo/server.rs b/examples/websocket/src/echo/server.rs index 7702d417..fef89a12 100644 --- a/examples/websocket/src/echo/server.rs +++ b/examples/websocket/src/echo/server.rs @@ -27,9 +27,9 @@ use warp::Filter; // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. pub async fn run() { - let routes = warp::path::end().and(warp::ws()).map(|ws: warp::ws::Ws| { - ws.on_upgrade(move |socket| user_connected(socket)) - }); + let routes = warp::path::end() + .and(warp::ws()) + .map(|ws: warp::ws::Ws| ws.on_upgrade(user_connected)); warp::serve(routes).run(([127, 0, 0, 1], 3030)).await; } @@ -40,7 +40,7 @@ async fn user_connected(ws: WebSocket) { tokio::task::spawn(async move { while let Some(message) = rx.next().await { - let _ = user_ws_tx.send(message).await.unwrap_or_else(|e| { + user_ws_tx.send(message).await.unwrap_or_else(|e| { eprintln!("websocket send error: {}", e); }); } diff --git a/glow/src/backend.rs b/glow/src/backend.rs index f63135a4..78d4229e 100644 --- a/glow/src/backend.rs +++ b/glow/src/backend.rs @@ -173,7 +173,6 @@ impl Backend { glow_glyph::VerticalAlign::Bottom } }), - ..Default::default() }; self.text_pipeline.queue(text); diff --git a/glow/src/quad/compatibility.rs b/glow/src/quad/compatibility.rs index 7224e206..eb3fb7e0 100644 --- a/glow/src/quad/compatibility.rs +++ b/glow/src/quad/compatibility.rs @@ -116,14 +116,7 @@ impl Pipeline { // TODO: Remove this allocation (or allocate only when needed) let indices: Vec<i32> = (0..instances.len().min(MAX_QUADS) as i32) .flat_map(|i| { - [ - 0 + i * 4, - 1 + i * 4, - 2 + i * 4, - 2 + i * 4, - 1 + i * 4, - 3 + i * 4, - ] + [i * 4, 1 + i * 4, 2 + i * 4, 2 + i * 4, 1 + i * 4, 3 + i * 4] }) .cycle() .take(instances.len() * 6) diff --git a/graphics/src/font/source.rs b/graphics/src/font/source.rs index a2d3f51d..c0b50e1d 100644 --- a/graphics/src/font/source.rs +++ b/graphics/src/font/source.rs @@ -37,3 +37,9 @@ impl Source { } } } + +impl Default for Source { + fn default() -> Self { + Self::new() + } +} diff --git a/graphics/src/widget/canvas/path/builder.rs b/graphics/src/widget/canvas/path/builder.rs index 2f1f85a0..05316d8a 100644 --- a/graphics/src/widget/canvas/path/builder.rs +++ b/graphics/src/widget/canvas/path/builder.rs @@ -151,3 +151,9 @@ impl Builder { } } } + +impl Default for Builder { + fn default() -> Self { + Self::new() + } +} diff --git a/graphics/src/widget/pure/qr_code.rs b/graphics/src/widget/pure/qr_code.rs index 23a8ceb6..bff391fe 100644 --- a/graphics/src/widget/pure/qr_code.rs +++ b/graphics/src/widget/pure/qr_code.rs @@ -53,12 +53,12 @@ where } } -impl<'a, Message, B, T> Into<Element<'a, Message, Renderer<B, T>>> - for QRCode<'a> +impl<'a, Message, B, T> From<QRCode<'a>> + for Element<'a, Message, Renderer<B, T>> where B: Backend, { - fn into(self) -> Element<'a, Message, Renderer<B, T>> { - Element::new(self) + fn from(qr_code: QRCode<'a>) -> Self { + Self::new(qr_code) } } diff --git a/graphics/src/widget/qr_code.rs b/graphics/src/widget/qr_code.rs index 86a27fd0..1a5c0b0a 100644 --- a/graphics/src/widget/qr_code.rs +++ b/graphics/src/widget/qr_code.rs @@ -125,13 +125,13 @@ where } } -impl<'a, Message, B, T> Into<Element<'a, Message, Renderer<B, T>>> - for QRCode<'a> +impl<'a, Message, B, T> From<QRCode<'a>> + for Element<'a, Message, Renderer<B, T>> where B: Backend, { - fn into(self) -> Element<'a, Message, Renderer<B, T>> { - Element::new(self) + fn from(qr_code: QRCode<'a>) -> Self { + Self::new(qr_code) } } diff --git a/graphics/src/window/gl_compositor.rs b/graphics/src/window/gl_compositor.rs index 4ff17366..722e4d9c 100644 --- a/graphics/src/window/gl_compositor.rs +++ b/graphics/src/window/gl_compositor.rs @@ -35,6 +35,9 @@ pub trait GLCompositor: Sized { /// Creates a new [`GLCompositor`] and [`Renderer`] with the given /// [`Settings`] and an OpenGL address loader function. /// + /// # Safety + /// The `loader_function` should resolve to valid OpenGL bindings. + /// /// [`Renderer`]: crate::Renderer /// [`Backend`]: crate::Backend /// [`Settings`]: Self::Settings diff --git a/lazy/src/component.rs b/lazy/src/component.rs index 847afbd8..eac7e8ee 100644 --- a/lazy/src/component.rs +++ b/lazy/src/component.rs @@ -396,7 +396,7 @@ where &mut local_shell, ) }) - .unwrap_or_else(|| iced_native::event::Status::Ignored); + .unwrap_or(iced_native::event::Status::Ignored); local_shell.revalidate_layout(|| shell.invalidate_layout()); diff --git a/lazy/src/lib.rs b/lazy/src/lib.rs index 7dc294cf..aed11e9f 100644 --- a/lazy/src/lib.rs +++ b/lazy/src/lib.rs @@ -11,7 +11,11 @@ clippy::useless_conversion )] #![forbid(unsafe_code)] -#![allow(clippy::inherent_to_string, clippy::type_complexity)] +#![allow( + clippy::await_holding_refcell_ref, + clippy::inherent_to_string, + clippy::type_complexity +)] #![cfg_attr(docsrs, feature(doc_cfg))] pub mod component; pub mod responsive; diff --git a/lazy/src/pure/component.rs b/lazy/src/pure/component.rs index b8370263..b414a149 100644 --- a/lazy/src/pure/component.rs +++ b/lazy/src/pure/component.rs @@ -428,7 +428,7 @@ where &mut local_shell, ) }) - .unwrap_or_else(|| iced_native::event::Status::Ignored); + .unwrap_or(iced_native::event::Status::Ignored); local_shell.revalidate_layout(|| shell.invalidate_layout()); diff --git a/lazy/src/pure/responsive.rs b/lazy/src/pure/responsive.rs index d156f805..0964ebc8 100644 --- a/lazy/src/pure/responsive.rs +++ b/lazy/src/pure/responsive.rs @@ -383,6 +383,6 @@ where shell, ) }) - .unwrap_or_else(|| iced_native::event::Status::Ignored) + .unwrap_or(iced_native::event::Status::Ignored) } } diff --git a/lazy/src/responsive.rs b/lazy/src/responsive.rs index d305689d..4a3eb5c6 100644 --- a/lazy/src/responsive.rs +++ b/lazy/src/responsive.rs @@ -224,7 +224,7 @@ where where R: Deref<Target = Renderer>, { - self.content.resolve(&mut self.state, renderer, f) + self.content.resolve(self.state, renderer, f) } } @@ -405,6 +405,6 @@ where shell, ) }) - .unwrap_or_else(|| iced_native::event::Status::Ignored) + .unwrap_or(iced_native::event::Status::Ignored) } } diff --git a/native/src/debug/basic.rs b/native/src/debug/basic.rs index d706bb00..603f2fd5 100644 --- a/native/src/debug/basic.rs +++ b/native/src/debug/basic.rs @@ -186,6 +186,12 @@ impl Debug { } } +impl Default for Debug { + fn default() -> Self { + Self::new() + } +} + #[derive(Debug)] struct TimeBuffer { head: usize, diff --git a/pure/src/lib.rs b/pure/src/lib.rs index b8351f48..9c5f3bc8 100644 --- a/pure/src/lib.rs +++ b/pure/src/lib.rs @@ -280,13 +280,13 @@ where } } -impl<'a, Message, Renderer> Into<iced_native::Element<'a, Message, Renderer>> - for Pure<'a, Message, Renderer> +impl<'a, Message, Renderer> From<Pure<'a, Message, Renderer>> + for iced_native::Element<'a, Message, Renderer> where Message: 'a, Renderer: iced_native::Renderer + 'a, { - fn into(self) -> iced_native::Element<'a, Message, Renderer> { - iced_native::Element::new(self) + fn from(pure: Pure<'a, Message, Renderer>) -> Self { + Self::new(pure) } } diff --git a/pure/src/widget/button.rs b/pure/src/widget/button.rs index dd7688e2..eb174e57 100644 --- a/pure/src/widget/button.rs +++ b/pure/src/widget/button.rs @@ -159,7 +159,7 @@ where self.height, self.padding, |renderer, limits| { - self.content.as_widget().layout(renderer, &limits) + self.content.as_widget().layout(renderer, limits) }, ) } @@ -261,14 +261,14 @@ where } } -impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> - for Button<'a, Message, Renderer> +impl<'a, Message, Renderer> From<Button<'a, Message, Renderer>> + for Element<'a, Message, Renderer> where Message: Clone + 'a, Renderer: iced_native::Renderer + 'a, Renderer::Theme: StyleSheet, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(button: Button<'a, Message, Renderer>) -> Self { + Self::new(button) } } diff --git a/pure/src/widget/checkbox.rs b/pure/src/widget/checkbox.rs index 9d6a78ce..e0f9b764 100644 --- a/pure/src/widget/checkbox.rs +++ b/pure/src/widget/checkbox.rs @@ -96,14 +96,14 @@ where } } -impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> - for Checkbox<'a, Message, Renderer> +impl<'a, Message, Renderer> From<Checkbox<'a, Message, Renderer>> + for Element<'a, Message, Renderer> where Message: 'a, Renderer: text::Renderer + 'a, Renderer::Theme: StyleSheet + widget::text::StyleSheet, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(checkbox: Checkbox<'a, Message, Renderer>) -> Self { + Self::new(checkbox) } } diff --git a/pure/src/widget/column.rs b/pure/src/widget/column.rs index 74d789a1..027eff0a 100644 --- a/pure/src/widget/column.rs +++ b/pure/src/widget/column.rs @@ -95,6 +95,12 @@ impl<'a, Message, Renderer> Column<'a, Message, Renderer> { } } +impl<'a, Message, Renderer> Default for Column<'a, Message, Renderer> { + fn default() -> Self { + Self::new() + } +} + impl<'a, Message, Renderer> Widget<Message, Renderer> for Column<'a, Message, Renderer> where @@ -228,13 +234,13 @@ where } } -impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> - for Column<'a, Message, Renderer> +impl<'a, Message, Renderer> From<Column<'a, Message, Renderer>> + for Element<'a, Message, Renderer> where Message: 'a, Renderer: iced_native::Renderer + 'a, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(column: Column<'a, Message, Renderer>) -> Self { + Self::new(column) } } diff --git a/pure/src/widget/image.rs b/pure/src/widget/image.rs index c42113dc..58f81a6f 100644 --- a/pure/src/widget/image.rs +++ b/pure/src/widget/image.rs @@ -56,14 +56,14 @@ where } } -impl<'a, Message, Renderer, Handle> Into<Element<'a, Message, Renderer>> - for Image<Handle> +impl<'a, Message, Renderer, Handle> From<Image<Handle>> + for Element<'a, Message, Renderer> where Message: Clone + 'a, Renderer: iced_native::image::Renderer<Handle = Handle> + 'a, Handle: Clone + Hash + 'a, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(image: Image<Handle>) -> Self { + Self::new(image) } } diff --git a/pure/src/widget/pick_list.rs b/pure/src/widget/pick_list.rs index bba5391a..9264544a 100644 --- a/pure/src/widget/pick_list.rs +++ b/pure/src/widget/pick_list.rs @@ -225,8 +225,8 @@ where } } -impl<'a, T: 'a, Message, Renderer> Into<Element<'a, Message, Renderer>> - for PickList<'a, T, Message, Renderer> +impl<'a, T: 'a, Message, Renderer> From<PickList<'a, T, Message, Renderer>> + for Element<'a, Message, Renderer> where T: Clone + ToString + Eq + 'static, [T]: ToOwned<Owned = Vec<T>>, @@ -234,7 +234,7 @@ where Renderer: text::Renderer + 'a, Renderer::Theme: StyleSheet, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(pick_list: PickList<'a, T, Message, Renderer>) -> Self { + Self::new(pick_list) } } diff --git a/pure/src/widget/progress_bar.rs b/pure/src/widget/progress_bar.rs index 69c7d302..c9644853 100644 --- a/pure/src/widget/progress_bar.rs +++ b/pure/src/widget/progress_bar.rs @@ -10,7 +10,7 @@ use iced_native::{Clipboard, Length, Point, Rectangle, Shell}; pub use iced_native::widget::progress_bar::*; -impl<'a, Message, Renderer> Widget<Message, Renderer> for ProgressBar<Renderer> +impl<Message, Renderer> Widget<Message, Renderer> for ProgressBar<Renderer> where Renderer: iced_native::Renderer, Renderer::Theme: StyleSheet, @@ -93,13 +93,13 @@ where } } -impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> - for ProgressBar<Renderer> +impl<'a, Message, Renderer> From<ProgressBar<Renderer>> + for Element<'a, Message, Renderer> where Renderer: iced_native::Renderer + 'a, Renderer::Theme: StyleSheet, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(progress_bar: ProgressBar<Renderer>) -> Self { + Self::new(progress_bar) } } diff --git a/pure/src/widget/radio.rs b/pure/src/widget/radio.rs index 7a6ffbac..604c2785 100644 --- a/pure/src/widget/radio.rs +++ b/pure/src/widget/radio.rs @@ -96,14 +96,14 @@ where } } -impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> - for Radio<Message, Renderer> +impl<'a, Message, Renderer> From<Radio<Message, Renderer>> + for Element<'a, Message, Renderer> where Message: 'a + Clone, Renderer: text::Renderer + 'a, Renderer::Theme: StyleSheet + widget::text::StyleSheet, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(radio: Radio<Message, Renderer>) -> Self { + Self::new(radio) } } diff --git a/pure/src/widget/row.rs b/pure/src/widget/row.rs index e747adfc..a288a68d 100644 --- a/pure/src/widget/row.rs +++ b/pure/src/widget/row.rs @@ -85,6 +85,12 @@ impl<'a, Message, Renderer> Row<'a, Message, Renderer> { } } +impl<'a, Message, Renderer> Default for Row<'a, Message, Renderer> { + fn default() -> Self { + Self::new() + } +} + impl<'a, Message, Renderer> Widget<Message, Renderer> for Row<'a, Message, Renderer> where @@ -215,13 +221,13 @@ where } } -impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> - for Row<'a, Message, Renderer> +impl<'a, Message, Renderer> From<Row<'a, Message, Renderer>> + for Element<'a, Message, Renderer> where Message: 'a, Renderer: iced_native::Renderer + 'a, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(row: Row<'a, Message, Renderer>) -> Self { + Self::new(row) } } diff --git a/pure/src/widget/rule.rs b/pure/src/widget/rule.rs index 66a47653..0fb4ebab 100644 --- a/pure/src/widget/rule.rs +++ b/pure/src/widget/rule.rs @@ -10,7 +10,7 @@ use iced_native::{Clipboard, Length, Point, Rectangle, Shell}; pub use iced_native::widget::rule::*; -impl<'a, Message, Renderer> Widget<Message, Renderer> for Rule<Renderer> +impl<Message, Renderer> Widget<Message, Renderer> for Rule<Renderer> where Renderer: iced_native::Renderer, Renderer::Theme: StyleSheet, @@ -93,13 +93,13 @@ where } } -impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> - for Rule<Renderer> +impl<'a, Message, Renderer> From<Rule<Renderer>> + for Element<'a, Message, Renderer> where Renderer: iced_native::Renderer + 'a, Renderer::Theme: StyleSheet, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(rule: Rule<Renderer>) -> Self { + Self::new(rule) } } diff --git a/pure/src/widget/space.rs b/pure/src/widget/space.rs index 7d95ebd7..408cb647 100644 --- a/pure/src/widget/space.rs +++ b/pure/src/widget/space.rs @@ -9,7 +9,7 @@ use iced_native::{Clipboard, Length, Point, Rectangle, Shell}; pub use iced_native::widget::Space; -impl<'a, Message, Renderer> Widget<Message, Renderer> for Space +impl<Message, Renderer> Widget<Message, Renderer> for Space where Renderer: iced_native::Renderer, { @@ -91,11 +91,11 @@ where } } -impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> for Space +impl<'a, Message, Renderer> From<Space> for Element<'a, Message, Renderer> where Renderer: iced_native::Renderer + 'a, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(space: Space) -> Self { + Self::new(space) } } diff --git a/pure/src/widget/svg.rs b/pure/src/widget/svg.rs index 501d9bfa..ae4e8cff 100644 --- a/pure/src/widget/svg.rs +++ b/pure/src/widget/svg.rs @@ -54,12 +54,12 @@ where } } -impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> for Svg +impl<'a, Message, Renderer> From<Svg> for Element<'a, Message, Renderer> where Message: Clone + 'a, Renderer: iced_native::svg::Renderer + 'a, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(svg: Svg) -> Self { + Self::new(svg) } } diff --git a/pure/src/widget/text.rs b/pure/src/widget/text.rs index 23999a2c..7c6f6ce9 100644 --- a/pure/src/widget/text.rs +++ b/pure/src/widget/text.rs @@ -55,23 +55,23 @@ where } } -impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> - for Text<Renderer> +impl<'a, Message, Renderer> From<Text<Renderer>> + for Element<'a, Message, Renderer> where Renderer: text::Renderer + 'a, Renderer::Theme: widget::text::StyleSheet, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(text: Text<Renderer>) -> Self { + Self::new(text) } } -impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> for &'a str +impl<'a, Message, Renderer> From<&'a str> for Element<'a, Message, Renderer> where Renderer: text::Renderer + 'a, Renderer::Theme: widget::text::StyleSheet, { - fn into(self) -> Element<'a, Message, Renderer> { - Text::new(self).into() + fn from(contents: &'a str) -> Self { + Text::new(contents).into() } } diff --git a/pure/src/widget/toggler.rs b/pure/src/widget/toggler.rs index 5efa39ab..8d0044d2 100644 --- a/pure/src/widget/toggler.rs +++ b/pure/src/widget/toggler.rs @@ -96,14 +96,14 @@ where } } -impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> - for Toggler<'a, Message, Renderer> +impl<'a, Message, Renderer> From<Toggler<'a, Message, Renderer>> + for Element<'a, Message, Renderer> where Message: 'a, Renderer: text::Renderer + 'a, Renderer::Theme: StyleSheet + widget::text::StyleSheet, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(toggler: Toggler<'a, Message, Renderer>) -> Self { + Self::new(toggler) } } diff --git a/src/application.rs b/src/application.rs index e8d8e982..aca97367 100644 --- a/src/application.rs +++ b/src/application.rs @@ -215,6 +215,7 @@ pub trait Application: Sized { where Self: 'static, { + #[allow(clippy::needless_update)] let renderer_settings = crate::renderer::Settings { default_font: settings.default_font, default_text_size: settings.default_text_size, diff --git a/wgpu/src/image/raster.rs b/wgpu/src/image/raster.rs index bd6c1f45..2b4d4af3 100644 --- a/wgpu/src/image/raster.rs +++ b/wgpu/src/image/raster.rs @@ -103,7 +103,7 @@ impl Cache { if let Memory::Host(image) = memory { let (width, height) = image.dimensions(); - let entry = atlas.upload(width, height, &image, device, encoder)?; + let entry = atlas.upload(width, height, image, device, encoder)?; *memory = Memory::Device(entry); } |