pub fn set_platforms(
        &mut self,
        platforms: impl IntoIterator<Item = impl Into<Cow<'static, str>>>,
    ) -> Result<&mut Self, TargetSpecError> {
        self.platforms = platforms
            .into_iter()
            .map(|s| Ok(Arc::new(Platform::new(s.into(), TargetFeatures::Unknown)?)))
            .collect::<Result<Vec<_>, _>>()?;
        Ok(self)
    }
Sets a list of platforms for `hakari` to use.

By default, `hakari` unifies features that are always enabled across all platforms. If
builds are commonly performed on a few platforms, `hakari` can output platform-specific
instructions for those builds.

This currently supports target triples only, without further customization around
target features or flags. In the future, this may support `cfg()` expressions using
an [SMT solver](https://en.wikipedia.org/wiki/Satisfiability_modulo_theories).

Call `set_platforms` with an empty list to reset to default behavior.

Returns an error if a platform wasn't known to [`target_spec`], the library `hakari` uses
to resolve platforms.
tools/hakari/src/hakari.rs