Salsify the crate graph

I.e. make it not one giant input but multiple, for incrementality and decreased memory usage for Salsa 3 reasons.
This commit is contained in:
Chayim Refael Friedman 2025-01-02 01:45:32 +02:00
parent 44f18c3d05
commit c94e9efbef
108 changed files with 3630 additions and 2512 deletions

View file

@ -104,6 +104,12 @@ impl CfgOptions {
_ => None,
})
}
pub fn to_hashable(&self) -> HashableCfgOptions {
let mut enabled = self.enabled.iter().cloned().collect::<Box<[_]>>();
enabled.sort_unstable();
HashableCfgOptions { _enabled: enabled }
}
}
impl Extend<CfgAtom> for CfgOptions {
@ -256,3 +262,9 @@ impl fmt::Display for InactiveReason {
Ok(())
}
}
/// A `CfgOptions` that implements `Hash`, for the sake of hashing only.
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct HashableCfgOptions {
_enabled: Box<[CfgAtom]>,
}