summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mårten Kongstad <amhk@google.com> 2023-12-14 13:56:25 +0100
committer Mårten Kongstad <amhk@google.com> 2023-12-14 13:56:25 +0100
commit0c6a2fac775f179a533320dd521332760f998ea8 (patch)
tree23ca01a23681b31292d699d4e8cf09694d6958c1
parent49c49f365a340bdee6648a02f63d6526289b78d4 (diff)
aconfig: pass ownership of ProtoParsedFlag items to Java codegen
Pass ownership of the ProtoParsedFlag iterator items to the Java codegen: this removes the need for an explicit lifetime annotation. Bug: N/A Test: atest aconfig.test Change-Id: I78705b65b4cf41c3e23b59afbd122a029ee45df4
-rw-r--r--tools/aconfig/src/codegen/java.rs12
-rw-r--r--tools/aconfig/src/commands.rs3
2 files changed, 8 insertions, 7 deletions
diff --git a/tools/aconfig/src/codegen/java.rs b/tools/aconfig/src/codegen/java.rs
index ae3f274648..1d5dabf9f6 100644
--- a/tools/aconfig/src/codegen/java.rs
+++ b/tools/aconfig/src/codegen/java.rs
@@ -24,16 +24,16 @@ use crate::codegen;
use crate::commands::{CodegenMode, OutputFile};
use crate::protos::{ProtoFlagPermission, ProtoFlagState, ProtoParsedFlag};
-pub fn generate_java_code<'a, I>(
+pub fn generate_java_code<I>(
package: &str,
parsed_flags_iter: I,
codegen_mode: CodegenMode,
) -> Result<Vec<OutputFile>>
where
- I: Iterator<Item = &'a ProtoParsedFlag>,
+ I: Iterator<Item = ProtoParsedFlag>,
{
let flag_elements: Vec<FlagElement> =
- parsed_flags_iter.map(|pf| create_flag_element(package, pf)).collect();
+ parsed_flags_iter.map(|pf| create_flag_element(package, &pf)).collect();
let exported_flag_elements: Vec<FlagElement> =
flag_elements.iter().filter(|elem| elem.exported).cloned().collect();
let namespace_flags = gen_flags_by_namespace(&flag_elements);
@@ -361,7 +361,7 @@ mod tests {
let parsed_flags = crate::test::parse_test_flags();
let generated_files = generate_java_code(
crate::test::TEST_PACKAGE,
- parsed_flags.parsed_flag.iter(),
+ parsed_flags.parsed_flag.into_iter(),
CodegenMode::Production,
)
.unwrap();
@@ -514,7 +514,7 @@ mod tests {
let parsed_flags = crate::test::parse_test_flags();
let generated_files = generate_java_code(
crate::test::TEST_PACKAGE,
- parsed_flags.parsed_flag.iter(),
+ parsed_flags.parsed_flag.into_iter(),
CodegenMode::Exported,
)
.unwrap();
@@ -705,7 +705,7 @@ mod tests {
let parsed_flags = crate::test::parse_test_flags();
let generated_files = generate_java_code(
crate::test::TEST_PACKAGE,
- parsed_flags.parsed_flag.iter(),
+ parsed_flags.parsed_flag.into_iter(),
CodegenMode::Test,
)
.unwrap();
diff --git a/tools/aconfig/src/commands.rs b/tools/aconfig/src/commands.rs
index 9f21b6d100..50049d5b01 100644
--- a/tools/aconfig/src/commands.rs
+++ b/tools/aconfig/src/commands.rs
@@ -201,7 +201,8 @@ pub fn create_java_lib(mut input: Input, codegen_mode: CodegenMode) -> Result<Ve
let Some(package) = find_unique_package(&filtered_parsed_flags) else {
bail!("no parsed flags, or the parsed flags use different packages");
};
- generate_java_code(package, filtered_parsed_flags.iter(), codegen_mode)
+ let package = package.to_string();
+ generate_java_code(&package, filtered_parsed_flags.into_iter(), codegen_mode)
}
pub fn create_cpp_lib(mut input: Input, codegen_mode: CodegenMode) -> Result<Vec<OutputFile>> {