aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMårten Kongstad <amhk@google.com>2023-06-14 08:38:46 +0200
committerMårten Kongstad <amhk@google.com>2023-06-15 09:28:49 +0200
commitf94225266f0b6794dc39672509c4073fe5c948a6 (patch)
treea3bd50de1243fe1bc11c96c829d5314b6237060e
parent1cda03b44bb061c79d4c449a75f6d7d667d0b50e (diff)
downloadbuild-f94225266f0b6794dc39672509c4073fe5c948a6.tar.gz
aconfig: reduce number of #[cfg(feature = "cargo")] uses
Group statements with identical #[cfg(feature = "cargo")] attributes in the same block. This reduces repetition and makes the code easier to read and less error prone. Bug: 284779868 Test: atest aconfig.test Change-Id: Iebdcd20e7cd22cb641424a1af594f5c9ac57b623
-rw-r--r--tools/aconfig/src/protos.rs81
1 files changed, 28 insertions, 53 deletions
diff --git a/tools/aconfig/src/protos.rs b/tools/aconfig/src/protos.rs
index cb756928f8..604fd35984 100644
--- a/tools/aconfig/src/protos.rs
+++ b/tools/aconfig/src/protos.rs
@@ -28,64 +28,39 @@
// ---- When building with the Android tool-chain ----
#[cfg(not(feature = "cargo"))]
-pub use aconfig_protos::aconfig::Flag_declaration as ProtoFlagDeclaration;
-
-#[cfg(not(feature = "cargo"))]
-pub use aconfig_protos::aconfig::Flag_declarations as ProtoFlagDeclarations;
-
-#[cfg(not(feature = "cargo"))]
-pub use aconfig_protos::aconfig::Flag_value as ProtoFlagValue;
-
-#[cfg(not(feature = "cargo"))]
-pub use aconfig_protos::aconfig::Flag_values as ProtoFlagValues;
-
-#[cfg(not(feature = "cargo"))]
-pub use aconfig_protos::aconfig::Flag_permission as ProtoFlagPermission;
-
-#[cfg(not(feature = "cargo"))]
-pub use aconfig_protos::aconfig::Flag_state as ProtoFlagState;
-
-#[cfg(not(feature = "cargo"))]
-pub use aconfig_protos::aconfig::Parsed_flags as ProtoParsedFlags;
-
-#[cfg(not(feature = "cargo"))]
-pub use aconfig_protos::aconfig::Parsed_flag as ProtoParsedFlag;
-
-#[cfg(not(feature = "cargo"))]
-pub use aconfig_protos::aconfig::Tracepoint as ProtoTracepoint;
+mod auto_generated {
+ pub use aconfig_protos::aconfig::Flag_declaration as ProtoFlagDeclaration;
+ pub use aconfig_protos::aconfig::Flag_declarations as ProtoFlagDeclarations;
+ pub use aconfig_protos::aconfig::Flag_permission as ProtoFlagPermission;
+ pub use aconfig_protos::aconfig::Flag_state as ProtoFlagState;
+ pub use aconfig_protos::aconfig::Flag_value as ProtoFlagValue;
+ pub use aconfig_protos::aconfig::Flag_values as ProtoFlagValues;
+ pub use aconfig_protos::aconfig::Parsed_flag as ProtoParsedFlag;
+ pub use aconfig_protos::aconfig::Parsed_flags as ProtoParsedFlags;
+ pub use aconfig_protos::aconfig::Tracepoint as ProtoTracepoint;
+}
// ---- When building with cargo ----
#[cfg(feature = "cargo")]
-include!(concat!(env!("OUT_DIR"), "/aconfig_proto/mod.rs"));
-
-#[cfg(feature = "cargo")]
-pub use aconfig::Flag_declaration as ProtoFlagDeclaration;
-
-#[cfg(feature = "cargo")]
-pub use aconfig::Flag_declarations as ProtoFlagDeclarations;
-
-#[cfg(feature = "cargo")]
-pub use aconfig::Flag_value as ProtoFlagValue;
-
-#[cfg(feature = "cargo")]
-pub use aconfig::Flag_values as ProtoFlagValues;
-
-#[cfg(feature = "cargo")]
-pub use aconfig::Flag_permission as ProtoFlagPermission;
-
-#[cfg(feature = "cargo")]
-pub use aconfig::Flag_state as ProtoFlagState;
-
-#[cfg(feature = "cargo")]
-pub use aconfig::Parsed_flags as ProtoParsedFlags;
-
-#[cfg(feature = "cargo")]
-pub use aconfig::Parsed_flag as ProtoParsedFlag;
-
-#[cfg(feature = "cargo")]
-pub use aconfig::Tracepoint as ProtoTracepoint;
+mod auto_generated {
+ // include! statements should be avoided (because they import file contents verbatim), but
+ // because this is only used during local development, and only if using cargo instead of the
+ // Android tool-chain, we allow it
+ include!(concat!(env!("OUT_DIR"), "/aconfig_proto/mod.rs"));
+ pub use aconfig::Flag_declaration as ProtoFlagDeclaration;
+ pub use aconfig::Flag_declarations as ProtoFlagDeclarations;
+ pub use aconfig::Flag_permission as ProtoFlagPermission;
+ pub use aconfig::Flag_state as ProtoFlagState;
+ pub use aconfig::Flag_value as ProtoFlagValue;
+ pub use aconfig::Flag_values as ProtoFlagValues;
+ pub use aconfig::Parsed_flag as ProtoParsedFlag;
+ pub use aconfig::Parsed_flags as ProtoParsedFlags;
+ pub use aconfig::Tracepoint as ProtoTracepoint;
+}
// ---- Common for both the Android tool-chain and cargo ----
+pub use auto_generated::*;
+
use anyhow::Result;
pub fn try_from_text_proto<T>(s: &str) -> Result<T>