#[cfg(test)]
mod tests;
#[must_use]
pub fn combined_encoded_rustflags(
encoded: Option<&str>,
ordinary: Option<&str>,
extra_flags: &[String],
) -> Option<String> {
if extra_flags.is_empty() {
return None;
}
let mut combined = encoded.map_or_else(
|| {
let mut encoded = String::new();
for flag in ordinary.unwrap_or_default().split_whitespace() {
if !encoded.is_empty() {
encoded.push('\x1f');
}
encoded.push_str(flag);
}
encoded
},
str::to_owned,
);
for flag in extra_flags {
if !combined.is_empty() {
combined.push('\x1f');
}
combined.push_str(flag);
}
Some(combined)
}