diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-12-03 08:32:44 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-12-03 08:33:45 +0100 |
commit | 5e9639db8132cde2ae58d5230dd43521919a6c09 (patch) | |
tree | 03ef1845c93d35da00f010d8ac18a839cfce85e8 /src/package | |
parent | d1230c2e259ebdf892c7979fce041d84984ddb74 (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.rs | 14 |
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) |