pub fn compose_initial_parts(
stdin_content: Option<&str>,
file_text: &str,
cli_messages: &mut Vec<String>,
) -> String {
let mut parts: Vec<String> = Vec::new();
if let Some(stdin_text) = stdin_content {
parts.push(stdin_text.to_string());
}
if !file_text.is_empty() {
parts.push(file_text.to_string());
}
if !cli_messages.is_empty() {
parts.push(cli_messages.remove(0));
}
parts.join("")
}