From 9ced96e7c87d008e3b88b104a6cb1b0c44533237 Mon Sep 17 00:00:00 2001 From: Ryan Bottriell Date: Tue, 17 Dec 2024 14:46:53 -0800 Subject: [PATCH] Update workspace builder to deduplicate paths Signed-off-by: Ryan Bottriell --- crates/spk-workspace/src/builder.rs | 6 ++++-- crates/spk-workspace/src/workspace.rs | 2 +- cspell.json | 17 ++++++++++------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/crates/spk-workspace/src/builder.rs b/crates/spk-workspace/src/builder.rs index 42cb3c683..74279647b 100644 --- a/crates/spk-workspace/src/builder.rs +++ b/crates/spk-workspace/src/builder.rs @@ -2,11 +2,13 @@ // SPDX-License-Identifier: Apache-2.0 // https://github.com/spkenv/spk +use std::collections::HashSet; + use crate::error; #[derive(Default)] pub struct WorkspaceBuilder { - spec_files: Vec, + spec_files: HashSet, } impl WorkspaceBuilder { @@ -53,7 +55,7 @@ impl WorkspaceBuilder { /// Add a recipe file to the workspace. pub fn with_recipe_file(mut self, path: impl Into) -> Self { - self.spec_files.push(path.into()); + self.spec_files.insert(path.into()); self } diff --git a/crates/spk-workspace/src/workspace.rs b/crates/spk-workspace/src/workspace.rs index d40576a45..cbf365687 100644 --- a/crates/spk-workspace/src/workspace.rs +++ b/crates/spk-workspace/src/workspace.rs @@ -116,7 +116,7 @@ impl Workspace { ); let by_name = self.templates.entry(template.name().cloned()).or_default(); by_name.push(template); - Ok(&by_name.last().expect("just pushed something")) + Ok(by_name.last().expect("just pushed something")) } } diff --git a/cspell.json b/cspell.json index 630cb5303..19ed72fce 100644 --- a/cspell.json +++ b/cspell.json @@ -11,6 +11,7 @@ "language": "en", "version": "0.2", "words": [ + "A7USTIBXPXHMD5CYEIIOBMFLM3X77ESVR3WAUXQ7XQQGTHKH7DMQ", "ABCA", "ABEA", "abouts", @@ -19,7 +20,6 @@ "aclocal", "acyclical", "addrs", - "A7USTIBXPXHMD5CYEIIOBMFLM3X77ESVR3WAUXQ7XQQGTHKH7DMQ", "AEMKIJQ", "AGVXA", "alib", @@ -31,6 +31,7 @@ "ASWF", "atexit", "autogen", + "automake", "automounter", "autopoint", "autoreconf", @@ -55,9 +56,11 @@ "Blosc", "BLOSC", "BMLX", - "bools", "Boolish", + "bools", "Bottriell", + "bracoxide", + "bracoxidize", "bufread", "buildable", "builddep", @@ -272,8 +275,8 @@ "hasattr", "hashable", "hashalgo", - "hashset", "Hasher", + "hashset", "helmignore", "HFSBQEYR", "HHMMSS", @@ -495,7 +498,6 @@ "OWYWHJKCVRKGSBL", "OXFB", "OYMIQUY", - "PJDUUENJYFFDKZWRKHDUXK4FGGZ7FHDYMZ7P4CXORUG6TUMDJ7A", "parsedbuf", "parsewords", "partio", @@ -512,6 +514,7 @@ "pids", "Pinnable", "pixbuf", + "PJDUUENJYFFDKZWRKHDUXK4FGGZ7FHDYMZ7P4CXORUG6TUMDJ7A", "pkga", "pkgb", "pkgconfig", @@ -638,18 +641,18 @@ "SIMD", "SNAPPROCESS", "somedata", + "SOMEDIGEST", "somedir", "somename", "someotherdata", + "SOMEOTHERDIGEST", "somepkg", "someproject", "sometag", + "SOMETAG", "somethingelse", "somevalue", "somevar", - "SOMEDIGEST", - "SOMEOTHERDIGEST", - "SOMETAG", "SOVERSION", "spdev", "SPFS",