From c121d94f0b27bc04ffbdca55cd0939c1401d5a2e Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 27 Jan 2025 15:26:00 +0100 Subject: clippy: fixes and ignores --- shared/src/helper.rs | 14 +++++++------- shared/src/lib.rs | 1 + shared/src/packets.rs | 8 ++++++++ shared/src/resources.rs | 4 ++-- shared/src/store.rs | 4 ++-- shared/src/tree.rs | 45 +++++++++++++++++++-------------------------- 6 files changed, 39 insertions(+), 37 deletions(-) (limited to 'shared/src') diff --git a/shared/src/helper.rs b/shared/src/helper.rs index 3ae7c37..366ea52 100644 --- a/shared/src/helper.rs +++ b/shared/src/helper.rs @@ -27,7 +27,7 @@ pub trait ReadWrite: Sized { fn write(&self, w: &mut dyn Write) -> Result<()>; fn read(r: &mut dyn Read) -> Result; - fn write_alloc<'a>(&'a self) -> Cow<'a, [u8]> { + fn write_alloc(&self) -> Cow<'_, [u8]> { let mut buf = Vec::new(); self.write(&mut buf).unwrap(); Cow::Owned(buf) @@ -58,7 +58,7 @@ impl ReadWrite for u32 { } impl ReadWrite for Vec { fn write(&self, w: &mut dyn Write) -> Result<()> { - w.write_all(&self)?; + w.write_all(self)?; Ok(()) } fn read(r: &mut dyn Read) -> Result { @@ -67,9 +67,9 @@ impl ReadWrite for Vec { Ok(buf) } } -impl<'a> ReadWrite for Cow<'a, [u8]> { +impl ReadWrite for Cow<'_, [u8]> { fn write(&self, w: &mut dyn Write) -> Result<()> { - w.write_all(&self)?; + w.write_all(self)?; Ok(()) } fn read(r: &mut dyn Read) -> Result { @@ -77,10 +77,10 @@ impl<'a> ReadWrite for Cow<'a, [u8]> { r.read_to_end(&mut buf)?; Ok(Cow::Owned(buf)) } - fn write_alloc<'b>(&'b self) -> Cow<'b, [u8]> { + fn write_alloc(&self) -> Cow<'_, [u8]> { match self { Cow::Borrowed(x) => Cow::Borrowed(x), - Cow::Owned(x) => Cow::Borrowed(&x), + Cow::Owned(x) => Cow::Borrowed(x), } } } @@ -307,7 +307,7 @@ impl ReadWrite for Data { impl ReadWrite for Message { fn write(&self, w: &mut dyn Write) -> Result<()> { w.write_all(&(self.0.len() as u32).to_be_bytes())?; - w.write_all(&self.0.as_bytes())?; + w.write_all(self.0.as_bytes())?; Ok(()) } fn read(r: &mut dyn Read) -> Result { diff --git a/shared/src/lib.rs b/shared/src/lib.rs index e5cf666..e6b296e 100644 --- a/shared/src/lib.rs +++ b/shared/src/lib.rs @@ -20,6 +20,7 @@ debug_closure_helpers, string_from_utf8_lossy_owned )] +#![allow(clippy::unit_arg, clippy::type_complexity)] pub mod helper; pub mod packets; diff --git a/shared/src/packets.rs b/shared/src/packets.rs index a5c017d..dad09ce 100644 --- a/shared/src/packets.rs +++ b/shared/src/packets.rs @@ -72,6 +72,11 @@ impl Object { Self(rand::random()) } } +impl Default for Object { + fn default() -> Self { + Self::new() + } +} impl Packet { fn serialize_inner(&self, w: &mut impl Write) -> Result<()> { match self { @@ -222,3 +227,6 @@ impl Display for Object { .finish() } } +impl Object { + pub const ROOT: Object = Object(0); +} diff --git a/shared/src/resources.rs b/shared/src/resources.rs index 6c71adc..2c94d05 100644 --- a/shared/src/resources.rs +++ b/shared/src/resources.rs @@ -382,14 +382,14 @@ fn write_kv(w: &mut dyn Write, key: &[u8], value: &[u8]) -> Result<()> { Ok(()) } -impl<'a> ReadWrite for Image<'a> { +impl ReadWrite for Image<'_> { fn write(&self, w: &mut dyn Write) -> Result<()> { self.0.write(w) } fn read(r: &mut dyn Read) -> Result { Ok(Self( as ReadWrite>::read(r)?.into())) } - fn write_alloc<'b>(&'b self) -> Cow<'b, [u8]> { + fn write_alloc(&self) -> Cow<'_, [u8]> { self.0.write_alloc() } } diff --git a/shared/src/store.rs b/shared/src/store.rs index ddcee2c..b0dbe45 100644 --- a/shared/src/store.rs +++ b/shared/src/store.rs @@ -88,7 +88,7 @@ impl ResourceStore { } ResourceStore::Memory(map) => Ok(map.lock().unwrap().get(&key).map(|x| x.to_vec())), ResourceStore::Filesystem(root) => { - let path = fs_cache_path(&root, key); + let path = fs_cache_path(root, key); if path.exists() { let mut buf = Vec::new(); File::open(path)?.read_to_end(&mut buf)?; @@ -113,7 +113,7 @@ impl ResourceStore { map.lock().unwrap().insert(key, value.to_vec()); } ResourceStore::Filesystem(root) => { - let path = fs_cache_path(&root, key); + let path = fs_cache_path(root, key); if !path.exists() { let path_temp = path.with_extension("part"); File::create(&path_temp)?.write_all(value)?; diff --git a/shared/src/tree.rs b/shared/src/tree.rs index a0bbf43..72e4c24 100644 --- a/shared/src/tree.rs +++ b/shared/src/tree.rs @@ -22,9 +22,11 @@ use glam::Vec3A; use log::warn; use std::collections::{BTreeSet, HashMap}; +#[derive(Default)] pub struct SceneTree { pub objects: HashMap, } + pub struct ObjectData { pub pos: Vec3A, pub rot: Vec3A, @@ -33,13 +35,7 @@ pub struct ObjectData { pub pose: Vec, pub res: Resource, } -impl Default for SceneTree { - fn default() -> Self { - Self { - objects: Default::default(), - } - } -} + impl SceneTree { pub fn packet(&mut self, p: &Packet) { match p { @@ -50,13 +46,13 @@ impl SceneTree { self.remove_reparent(*object, &mut ()); } Packet::Position(object, pos, rot) => { - if let Some(o) = self.objects.get_mut(&object) { + if let Some(o) = self.objects.get_mut(object) { o.pos = *pos; o.rot = *rot; } } Packet::Pose(object, pose) => { - if let Some(o) = self.objects.get_mut(&object) { + if let Some(o) = self.objects.get_mut(object) { o.pose = pose.to_vec(); } } @@ -84,7 +80,7 @@ impl SceneTree { true } else { let parent = tree.objects[&o].parent; - if parent == o { + if parent == Object::ROOT { false } else { check_parent_loop(tree, parent, test) @@ -95,7 +91,7 @@ impl SceneTree { warn!("reparent of missing objects"); return; } - if check_parent_loop(&self, parent, child) { + if check_parent_loop(self, parent, child) { warn!("cyclic parenting prevented"); return; } @@ -131,22 +127,19 @@ impl SceneTree { } pub fn prime_client(&self) -> impl Iterator { - self.objects - .iter() - .map(|(object, data)| { - [ - Packet::Add(*object, data.res.clone()), - Packet::Parent(*object, data.parent), - Packet::Position(*object, data.pos, data.rot), - ] - .into_iter() - .chain(if data.pose.is_empty() { - None - } else { - Some(Packet::Pose(*object, data.pose.clone())) - }) + self.objects.iter().flat_map(|(object, data)| { + [ + Packet::Add(*object, data.res.clone()), + Packet::Parent(*object, data.parent), + Packet::Position(*object, data.pos, data.rot), + ] + .into_iter() + .chain(if data.pose.is_empty() { + None + } else { + Some(Packet::Pose(*object, data.pose.clone())) }) - .flatten() + }) } } -- cgit v1.2.3-70-g09d2