From a4cb95bd61794b976614619eedb9698d2435be4f Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sun, 5 Apr 2026 14:43:48 +0200 Subject: [PATCH] init: Extract Unit::conditions_met method --- init/src/main.rs | 17 ++--------------- init/src/unit.rs | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/init/src/main.rs b/init/src/main.rs index 2e34a98d72..9f797095bc 100644 --- a/init/src/main.rs +++ b/init/src/main.rs @@ -209,21 +209,8 @@ fn main() { } 'a: while let Some(unit) = pending_units.pop_front() { - if let Some(condition_architecture) = &unit_store.unit(&unit).info.condition_architecture { - if !condition_architecture - .iter() - .any(|arch| arch == std::env::consts::ARCH) - { - continue 'a; - } - } - if let Some(condition_board) = &unit_store.unit(&unit).info.condition_board { - if !condition_board - .iter() - .any(|board| Some(&**board) == option_env!("BOARD")) - { - continue 'a; - } + if !unit_store.unit(&unit).conditions_met() { + continue 'a; } for dep in &unit_store.unit(&unit).info.requires_weak { if pending_units.contains(dep) { diff --git a/init/src/unit.rs b/init/src/unit.rs index 753fbe8e97..54e5057461 100644 --- a/init/src/unit.rs +++ b/init/src/unit.rs @@ -233,4 +233,26 @@ impl Unit { Ok(Unit { id, info, kind }) } + + pub fn conditions_met(&self) -> bool { + if let Some(condition_architecture) = &self.info.condition_architecture { + if !condition_architecture + .iter() + .any(|arch| arch == std::env::consts::ARCH) + { + return false; + } + } + + if let Some(condition_board) = &self.info.condition_board { + if !condition_board + .iter() + .any(|board| Some(&**board) == option_env!("BOARD")) + { + return false; + } + } + + true + } }