aconfig: consolidate how fully qualified flag name is calculated
Add an extension trait to consolidate how the fully qualified package
name (<package>.<name>) is calculated and use this where possible.
This CL is a semantic change only. The intention of this CL is to reduce
the risk of future bugs.
Bug: N/A
Test: atest aconfig.test
Change-Id: Ibab6641dda3843337fbea02631c31a1fdd8fb4ab
diff --git a/tools/aconfig/src/commands.rs b/tools/aconfig/src/commands.rs
index 39e0154..54bc622 100644
--- a/tools/aconfig/src/commands.rs
+++ b/tools/aconfig/src/commands.rs
@@ -24,8 +24,8 @@
use crate::codegen_java::generate_java_code;
use crate::codegen_rust::generate_rust_code;
use crate::protos::{
- ProtoFlagMetadata, ProtoFlagPermission, ProtoFlagState, ProtoParsedFlag, ProtoParsedFlags,
- ProtoTracepoint,
+ ParsedFlagExt, ProtoFlagMetadata, ProtoFlagPermission, ProtoFlagState, ProtoParsedFlag,
+ ProtoParsedFlags, ProtoTracepoint,
};
pub struct Input {
@@ -226,10 +226,9 @@
.filter(|pf| pf.permission() == ProtoFlagPermission::READ_WRITE)
{
let line = format!(
- "{}:{}.{}={}\n",
+ "{}:{}={}\n",
parsed_flag.namespace(),
- parsed_flag.package(),
- parsed_flag.name(),
+ parsed_flag.fully_qualified_name(),
match parsed_flag.state() {
ProtoFlagState::ENABLED => "enabled",
ProtoFlagState::DISABLED => "disabled",
@@ -249,9 +248,8 @@
.filter(|pf| pf.permission() == ProtoFlagPermission::READ_WRITE)
{
let line = format!(
- "persist.device_config.{}.{}={}\n",
- parsed_flag.package(),
- parsed_flag.name(),
+ "persist.device_config.{}={}\n",
+ parsed_flag.fully_qualified_name(),
match parsed_flag.state() {
ProtoFlagState::ENABLED => "true",
ProtoFlagState::DISABLED => "false",
@@ -286,9 +284,8 @@
DumpFormat::Text => {
for parsed_flag in parsed_flags.parsed_flag.into_iter() {
let line = format!(
- "{}.{} [{}]: {:?} + {:?}\n",
- parsed_flag.package(),
- parsed_flag.name(),
+ "{} [{}]: {:?} + {:?}\n",
+ parsed_flag.fully_qualified_name(),
parsed_flag.container(),
parsed_flag.permission(),
parsed_flag.state()
@@ -301,9 +298,8 @@
let sources: Vec<_> =
parsed_flag.trace.iter().map(|tracepoint| tracepoint.source()).collect();
let line = format!(
- "{}.{} [{}]: {:?} + {:?} ({})\n",
- parsed_flag.package(),
- parsed_flag.name(),
+ "{} [{}]: {:?} + {:?} ({})\n",
+ parsed_flag.fully_qualified_name(),
parsed_flag.container(),
parsed_flag.permission(),
parsed_flag.state(),
@@ -322,9 +318,8 @@
DumpFormat::Bool => {
for parsed_flag in parsed_flags.parsed_flag.into_iter() {
let line = format!(
- "{}.{}={:?}\n",
- parsed_flag.package(),
- parsed_flag.name(),
+ "{}={:?}\n",
+ parsed_flag.fully_qualified_name(),
parsed_flag.state() == ProtoFlagState::ENABLED
);
output.extend_from_slice(line.as_bytes());
diff --git a/tools/aconfig/src/protos.rs b/tools/aconfig/src/protos.rs
index 37eb67d..2684d20 100644
--- a/tools/aconfig/src/protos.rs
+++ b/tools/aconfig/src/protos.rs
@@ -308,7 +308,17 @@
}
fn create_sorting_key(pf: &ProtoParsedFlag) -> String {
- format!("{}.{}", pf.package(), pf.name())
+ pf.fully_qualified_name()
+ }
+}
+
+pub trait ParsedFlagExt {
+ fn fully_qualified_name(&self) -> String;
+}
+
+impl ParsedFlagExt for ProtoParsedFlag {
+ fn fully_qualified_name(&self) -> String {
+ format!("{}.{}", self.package(), self.name())
}
}