Merge "aconfig: use bail! and ensure! where applicable" am: 7890fa3e84
am: bdd924b335
am: 0d0435cec4
am: fb0758808e
am: 7864e21306
Original change: https://android-review.googlesource.com/c/platform/build/+/2588765 Change-Id: I21f5d3c9e063b10f24608b667915b8208adbe1ed Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use anyhow::{anyhow, Context, Error, Result};
|
use anyhow::{anyhow, bail, Context, Error, Result};
|
||||||
use protobuf::{Enum, EnumOrUnknown};
|
use protobuf::{Enum, EnumOrUnknown};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
@@ -98,10 +98,10 @@ impl TryFrom<ProtoFlagDeclaration> for FlagDeclaration {
|
|||||||
|
|
||||||
fn try_from(proto: ProtoFlagDeclaration) -> Result<Self, Self::Error> {
|
fn try_from(proto: ProtoFlagDeclaration) -> Result<Self, Self::Error> {
|
||||||
let Some(name) = proto.name else {
|
let Some(name) = proto.name else {
|
||||||
return Err(anyhow!("missing 'name' field"));
|
bail!("missing 'name' field");
|
||||||
};
|
};
|
||||||
let Some(description) = proto.description else {
|
let Some(description) = proto.description else {
|
||||||
return Err(anyhow!("missing 'description' field"));
|
bail!("missing 'description' field");
|
||||||
};
|
};
|
||||||
Ok(FlagDeclaration { name, description })
|
Ok(FlagDeclaration { name, description })
|
||||||
}
|
}
|
||||||
@@ -118,7 +118,7 @@ impl FlagDeclarations {
|
|||||||
let proto: ProtoFlagDeclarations = crate::protos::try_from_text_proto(text_proto)
|
let proto: ProtoFlagDeclarations = crate::protos::try_from_text_proto(text_proto)
|
||||||
.with_context(|| text_proto.to_owned())?;
|
.with_context(|| text_proto.to_owned())?;
|
||||||
let Some(namespace) = proto.namespace else {
|
let Some(namespace) = proto.namespace else {
|
||||||
return Err(anyhow!("missing 'namespace' field"));
|
bail!("missing 'namespace' field");
|
||||||
};
|
};
|
||||||
let mut flags = vec![];
|
let mut flags = vec![];
|
||||||
for proto_flag in proto.flag.into_iter() {
|
for proto_flag in proto.flag.into_iter() {
|
||||||
@@ -154,17 +154,17 @@ impl TryFrom<ProtoFlagValue> for FlagValue {
|
|||||||
|
|
||||||
fn try_from(proto: ProtoFlagValue) -> Result<Self, Self::Error> {
|
fn try_from(proto: ProtoFlagValue) -> Result<Self, Self::Error> {
|
||||||
let Some(namespace) = proto.namespace else {
|
let Some(namespace) = proto.namespace else {
|
||||||
return Err(anyhow!("missing 'namespace' field"));
|
bail!("missing 'namespace' field");
|
||||||
};
|
};
|
||||||
let Some(name) = proto.name else {
|
let Some(name) = proto.name else {
|
||||||
return Err(anyhow!("missing 'name' field"));
|
bail!("missing 'name' field");
|
||||||
};
|
};
|
||||||
let Some(proto_state) = proto.state else {
|
let Some(proto_state) = proto.state else {
|
||||||
return Err(anyhow!("missing 'state' field"));
|
bail!("missing 'state' field");
|
||||||
};
|
};
|
||||||
let state = proto_state.try_into()?;
|
let state = proto_state.try_into()?;
|
||||||
let Some(proto_permission) = proto.permission else {
|
let Some(proto_permission) = proto.permission else {
|
||||||
return Err(anyhow!("missing 'permission' field"));
|
bail!("missing 'permission' field");
|
||||||
};
|
};
|
||||||
let permission = proto_permission.try_into()?;
|
let permission = proto_permission.try_into()?;
|
||||||
Ok(FlagValue { namespace, name, state, permission })
|
Ok(FlagValue { namespace, name, state, permission })
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use anyhow::{anyhow, bail, ensure, Result};
|
use anyhow::{bail, ensure, Result};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::io::{Read, Write};
|
use std::io::{Read, Write};
|
||||||
|
|
||||||
@@ -69,13 +69,12 @@ impl Cache {
|
|||||||
source: Source,
|
source: Source,
|
||||||
declaration: FlagDeclaration,
|
declaration: FlagDeclaration,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
if self.items.iter().any(|item| item.name == declaration.name) {
|
ensure!(
|
||||||
return Err(anyhow!(
|
self.items.iter().all(|item| item.name != declaration.name),
|
||||||
"failed to declare flag {} from {}: flag already declared",
|
"failed to declare flag {} from {}: flag already declared",
|
||||||
declaration.name,
|
declaration.name,
|
||||||
source,
|
source
|
||||||
));
|
);
|
||||||
}
|
|
||||||
self.items.push(Item {
|
self.items.push(Item {
|
||||||
namespace: self.namespace.clone(),
|
namespace: self.namespace.clone(),
|
||||||
name: declaration.name.clone(),
|
name: declaration.name.clone(),
|
||||||
|
Reference in New Issue
Block a user