1diff --git a/src/lib.rs b/src/lib.rs 2index 43fc5ba..2098949 100644 3--- a/src/lib.rs 4+++ b/src/lib.rs 5@@ -86,17 +86,17 @@ impl ModuleRequestSet { 6 |mut acc, (proto, raw)| { 7 let module = Module::from_protobuf_package_name(proto.package()); 8 let proto_filename = proto.name(); 9- let entry = acc.entry(module).or_insert_with(|| { 10- let mut request = ModuleRequest::new(proto.package().to_owned()); 11- if input_protos.contains(proto_filename) { 12- let filename = match proto.package() { 13- "" => default_package_filename.to_owned(), 14- package => format!("{package}.rs"), 15- }; 16- request.with_output_filename(filename); 17- } 18- request 19- }); 20+ let entry = acc 21+ .entry(module) 22+ .or_insert_with(|| ModuleRequest::new(proto.package().to_owned())); 23+ 24+ if entry.output_filename().is_none() && input_protos.contains(proto_filename) { 25+ let filename = match proto.package() { 26+ "" => default_package_filename.to_owned(), 27+ package => format!("{package}.rs"), 28+ }; 29+ entry.with_output_filename(filename); 30+ } 31 32 entry.push_file_descriptor_proto(proto, raw); 33 acc 34