summaryrefslogtreecommitdiffstats
path: root/src/package
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-12-03 08:32:44 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-12-03 08:33:45 +0100
commit5e9639db8132cde2ae58d5230dd43521919a6c09 (patch)
tree03ef1845c93d35da00f010d8ac18a839cfce85e8 /src/package
parentd1230c2e259ebdf892c7979fce041d84984ddb74 (diff)
Add Tree::all_packages() function to get all packages in a Tree
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/package')
-rw-r--r--src/package/tree.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/package/tree.rs b/src/package/tree.rs
index b489ef3..cb2b3d4 100644
--- a/src/package/tree.rs
+++ b/src/package/tree.rs
@@ -80,6 +80,20 @@ impl Tree {
self.root.iter().map(|mapping| &mapping.package)
}
+ /// Get all packages in the tree by reference
+ ///
+ /// # Warning
+ ///
+ /// The order of the packages is _NOT_ guaranteed by the implementation
+ pub fn all_packages(&self) -> Vec<&Package> {
+ self.root
+ .iter()
+ .map(|m| m.dependencies.all_packages())
+ .flatten()
+ .chain(self.root.iter().map(|m| &m.package))
+ .collect()
+ }
+
/// Get dependencies stored in this tree
pub fn dependencies(&self) -> impl Iterator<Item = &Tree> {
self.root.iter().map(|mapping| &mapping.dependencies)